1. K existujícímu generiku přidejte omezení na typ pomocí extends – objekty daného typu budou využívány specifickým způsobem.
2. Procvičte si práci s proměnnými generického typu:
- bez “wildcard” konstrukce a swildcard syntaxí – vytvořte metodu, která projde celý seznam a zavolá na něj toString,
- s omezením shora (extends) – vyžadován numerický typ pro výpočet,
- s omezením zdola (super) – bude se vkládat do seznamu.
(class SomeClass<T extends Numeric> //T extends Number & Comparable<T>)
3. Procvičte si práci se seznamy – vytvořte metodu ve třídě Lab09Solution, která bude tisknout seznam na konzoli.
4. Upravte předchozí metodu tak, aby vytiskla seznam čísel, které vygeneruje metoda RandomGenerator generateNumbers.
5. Seznamte se s kontejnery typu Set – je zde zajištěna unikátnost prvků. Využijte tento kontejner k tomu, že odstraníte duplicitní prvky – možno uložit do Set – nezachová se pořadí – nebo ukládat do nového seznamu a testovat zda dané slovo již bylo vloženo.
6. Seznamte se s kontejnerem typu Map. Využijte tento kontejner k počítání četnosti čísel.
7. Setřiďte pole čísel pomocí Collections.sort.
8. Setřiďte pole obdélníků podle obsahu – implementujte Comparable.
9. Setřiďte pole IMovable objektů podle pozice (nejprve souřadnice x a pak y) – implementujte Comparator.
Řešení vzniklé z části na cvičení a z části dodělané dobrovolníkem ze cvičení (úlohy 6, 8, 9) – lab09-solution-2016.zip
Domácí úkol:
Vytiskněte slova, která vrací metoda Book.getWords.
Vytiskněte slova, která vrací metoda Book.getWords – bez opakování (neřešte velká a malá písmena – odstraňte velká pomocí metody toLowerCase).
Vytiskněte četnosti slov – pro uchování četnosti použijte Map – klíč bude slovo a hodnota četnost.
Vložte slova (bez opakování) do seznamu a setřiďte seznam podle četnosti slov – naprogramujete objekt typy Comparator, který jako parametr dostane četnosti slov (Map).