Cieľom cvičení je pozrieť sa na využitie Java Collections Framework-u pri riešení rôznych úloh.
Pozrite si dokumentáciu (http://docs.oracle.com/javase/7/docs/api/) k nasledujúcim rozhraniam a triedam
Skúste nájsť odpovede na nasledujúce otázky:
Collections.shuffle?
Vytvorte program, ktorý z konzoly bude načítavať čísla dovtedy, kým používateľ nezadá zápornú hodnotu. Program potom vypíše utriedený zoznam zadaných čísel, ktoré sú menšie než priemerná hodnota zadaných čísel.
Skupina študentov z rôznych odborov sa rozhodla zistiť, či existuje taká prednáška, ktorú navštevujú všetci. Každý zo študentov napísal zoznam prednášok, ktoré navštevuje (názov prednášky je jedno slovo - jeho kód). Potom spoločne vytvorili jeden veľký textový súbor (vstup pre váš program). Ten vyzeral tak, že v každom riadku, bol uvedený medzerami oddelený zoznam prednášok navštevovaných jedným študentom. Vytvorte program, ktorý nájde všetky také prednášky, ktoré sú navštevované všetkými študentmi.
Príklad vstupu:MA1 alg PaZ1b koi ZLVAlg Ma2 PAZ1b GeO GrafLCO tg kombat ALG foja PaZ1b
Výstup:ALG PAZ1B
Frekvenčná analýza je obzvlášť v kryptológií dôležitým zdrojom informácií. Poznať percentuálny výskyt jednotlivých znakov je preto veľmi užitočné. Vytvorte program, ktorý zistí a vypíše nanajvýš 10 najčastejšie sa vyskytujúcich písmen v textovom súbore (nanajvýš preto, lebo v súbore môže byť napríklad len 5 rôznych písmen - vtedy treba vypísať všetky). Písmená vypíšte usporiadané podľa počtu výskytov. Využite Map<Character, Integer>.
Pre fajnšmekrov:
List<Entry<Character, Integer>>)
TreeMap a komparátora? (Odpoveď je záporná, prečo?)
Vytvorte triedu sk.upjs.umv.Zlomok, ktorá reprezentuje zlomok (dvojicu čitateľ a menovateľ). Podobne ako u objektov triedy String, aj obsah objektu triedy Zlomok nech je určený pri jeho vytvorení.
toString, equals a hashCode pre objekty triedy Zlomok (nezabudnite, že zlomok 1/2 a 2/4 reprezentujú ten istý zlomok).
PorovnavacZlomkov, ktorá bude implementovať rozhranie Comparator<Zlomok>. Využite triedu PorovnavacZlomkov na utriedenie zoznamu zlomkov a tiež ako parameter v konštruktore triedy TreeSet
Zlomok tak, aby implementovala rozhranie Comparable<Zlomok>. Ako bude fungovať jednoparametrový príkaz Collections.sort() teraz?
Zlomok pridajte metódu pripocitaj, ktorá vráti zlomok, ktorý vznikne pripočítaním parametrom zadaného zlomku k danému zlomku:
Zlomok tak, aby rozširovala triedu java.lang.Number
Vytvorte triedu sk.upjs.Zlomkar, ktorá bude poskytovať základné algoritmy na prácu so zlomkami.
Zlomkar pridajte metódu sucet, ktorá vráti súčet zlomkov v zozname zlomkov:
Zlomkar pridajte metódu maximum, ktorá vráti najväčšiu hodnotu v zozname zlomkov (porozmýšľajte, ako využiť metódu Collections.max).