PJ1 Lesson 92

lab09.zip

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).