11. cviceni ========== * dochazka * poznamky k 5. uloze * konzultace k 6. uloze * mejme kolekci (seznam) nekolika retezcu ? jak ji usporadame vzestupne podle abecedy? ? jak ji usporadame sestupne podle abecedy? ? jak ji usporadame podle abecedy v rezimu case-insensitive? ? jak vyhledame minimalni/maximalni prvek v kolekci? * implementace tridy Student - trida bude nemenitelna (immutable) ? atributy dateOfBirth, name a surname -- staci to? => pro jednoznacnou identifikaci studenta potrebujeme navic id - konstruktor s odpovidajicimi parametry pro kazdy atribut - odpovidajici get metody pro kazdy atribut - implementace metody equals() podle id studenta - jake metody bychom meli dale implementovat? ? implicitni usporadani podle surname a name -- je to korektni? => nebylo by to konzistentni s equals(), problemy pri pouziti v kolekcich * studenty budeme chtit usporadat podle jmena nebo data narozeni ? jak to lze jednoduse udelat? - Comparator pro usporadani studentu dle data narozeni - Comparator pro usporadani studentu dle prijmeni a jmena * vytvorte tridu Students a v ni metodu main() ve spravnem tvaru * v metode main() vytvorte kolekci studentu a naplnte je 10 ruznymi studenty ? jaka kolekce jsou ne/vhodne a proc? - vyhledejte nejmladsiho a nejstarsiho studenta - vyhledejte studenta prvniho a posledniho v abecede - usporadejte studenty podle id a vypiste na standardni vystup ? narazili jste na nejake problemy? ? muze k nejakym problemu dojit? k jakym? * nyni vytvorte tridu StudentRegister - metoda pro vytvoreni studenta s unikatnim id ? jak docilit unikatnich id pro studenty? => staticky atribut s citacem id - metoda pro vyhledani studenta podle id - metoda vracejici vsechny studenty usporadane dle prijemni a jmena - metoda vracejici vsechny studenty usporadane dle data narozeni ? jake navratove typy by mely mit posledni dve zminene metody? => idealne SortedSet * demonstrujte pouziti tridy StudentRegister v metode main()