PB162 Programování v jazyce Java 13. cvičenie osnova 7. a 8. úloha, opravná písomka equals() a hashCode() usporiadané kolekcie kontajnery kontajnerov výčtový typ implementácia viacerých rozhraní príkaz assert, JUnit testy 7. a 8. úloha, opravná písomka 7. úloha ­ deadline dnes 8. úloha ­ do budúcej stredy oneskorene odovzdané úlohy opravím v konečnom čase budúci týždeň ­ opravná písomka + predtermín ­ najmä tí s menej ako 70 % bodov ­ zajtra ­ konzultácia od 16.00 (?) equals() a hashCode() hashCode musí vracať rovnaké hodnoty pre equal objekty! ak rozhranie definuje rovnosť objektov, musia byť equal aj rôzne implementácie public boolean equals(Object o) { return o instanceof Candidate && id == ((Candidate) o).getId(); } usporiadané kolekcie rozhrania SortedSet, SortedMap implementované TreeSet, TreeMap (rb tree) automaticky zoraďované objekty resp. kľúče rozhranie Comparable ­ metóda x.compareTo(y) ­1 <=> x < y 0 <=> x.equals(y) 1 <=> x > y rozhranie SortedSet rozširuje Set navyše metódy ­ first, last, ­ headSet, tailSet, subSet ­ next? ­ previous? časová zložitosť (pre TreeSet) v O (log n) rozhranie SortedSet rozširuje Set navyše metódy ­ first, last, ­ headSet, tailSet, subSet ­ next? tailSet().first() ­ previous? headSet().last() časová zložitosť (pre TreeSet) v O (log n) príklad časovka (TimeKeeping) pretekári sa registrujú ­ registračka ­ štartovacia fronta štartujú jednotlivo každému sa meria čas individuálne (na trati i viac (desiatky) pretekárov súčasne) príchod do cieľa ­ zaradenie do priebežného poradia poradie ­ automaticky aktualizuje príklad časovka (TimeKeeping) pretekári sa registrujú ­ registračka Map pomocou HashMap ­ štartovacia fronta Queue pomocou LinkListu štartujú jednotlivo (poll z fronty) každému sa meria čas individuálne ­ na trati i viac (desiatky) pretekárov súčasne príchod do cieľa ­ zaradenie do priebežného poradia SortedSet pomocou TreeSet poradie ­ automaticky aktualizuje kontajnery kontajnerov objektom vkladaným do kolekcie môže byť iná kolekcia ­ zoznam množín, množina zoznamov, mapa množín, mapa máp... cache vzdialeností ­ pre jednu zastávku: Map ­ pre celú sieť: Map> ďalšie témy vymenovaný (výčtový) typ príkaz asser, Junit testy implementácia viacerých rozhraní