Table of Contents

5. Cvičení - Kolekce a generika

V tomto cvičení se naučíte základní práci s kolekcemi. Jako samostaný úkol se podívejte na kolekce typu Map. Zároveň byste se naučíte vytvořit a vyhodit výjimku a na vhodném místě zajistit její zpracování.

Úkoly

  1. Vytvořte třídu Contact, která v sobě uchovává jméno, příjmení, email, telefonní číslo a adresu osoby. Implementujte metodu toString, která vypíše kontakt v lidsky čitelné formě.
  2. Zajistěte kontrolu vstupních parametrů (telefonního čísla, jména a příjmení) pomocí vyhození vlastní výjimky.
  3. Vytvořte třídu ContactList, která bude uvnitř kolekce obsahovat instance třídy Contact.
  4. Implementujte metodu toString u třídy ContactList.
  5. Zajistěte naplnění třídy ContactList daty od uživatele a zároveň vhodně reagujte na možné chybné zadání kontrolovaných údajů pomocí try-catch.
  6. Zajistěte, aby bylo možné seřadit kontakty v kolekci podle telefonního čísla pomocí implementace rozhraní Comparable ve třídě Contact.
  7. Napište vlastní Comparator, který seřadí uživatele podle příjmení a pak jména.
  8. S cvičícím projděte výhody a nevýhody obou přístupů k řazení prvků pomocí metody Collections.sort().

Samostatná práce

Procvičení Map

Třídu Planet:

Atributy:

Map<String, Planet>

Vytvořte konkrétní implementaci této mapy

Testovací data (atribut status je zde typu enum):

enum Status {FRIENDLY, NEUTRAL, ENEMY}

record Planet(String name, String species, Status status) {}

Planet planet1 = new Planet("Vulcan", "T'Khasi", Status.FRIENDLY);
Planet planet2 = new Planet("Qo'noS", "Klingon", Status.ENEMY);
Planet planet3 = new Planet("Romulus", "Hoshi", Status.ENEMY);
Planet planet4 = new Planet("Andoria", "Andorians", Status.NEUTRAL);
Planet planet5 = new Planet("Bajor", "Bajoran", Status.NEUTRAL);

Studijní materiály

Kolekce

Výjimky

Generika