PB162 Programování v jazyce Java 11 cvičenie osnova nemodifikovateľné kolekcie pomocou Collections množiny ­ rozhranie Set ­ doplnenie triedy Network mapy v Jave ­ rozhranie Map ­ triedy Ticket, Tickets nemodifikovateľné kolekcie kolekcia ako atribút triedy chceme sprístupniť len na čítanie ­ nedostatočné riešenie: private Set lines; ... public Set getLines() { return lines; } klient môže volať getLines().clear(); nemodifikovateľné kolekcie kolekcia len na čítanie ­ použitie obálky ... public Set getLines() { return Collections. unmodifableSet(lines); } volanie modifikujúcich metód spôsobí výnimku trieda Collections ­ statické metódy na všeobecnú prácu s kolekciami systém MHD linka si pamätá zoznam zastávok ­ každá zastávka viac krát ­ poradie zodpovedá poradiu zastávok na linke sieť je množina liniek ­ každá linka len raz ­ na poradí nezáleží predplatené čipové karty ­ kredit sa odčítava podľa počtu precestovných zastávok java.util.Set ­ použitie import balíčkov import java.util.Set; import java.util.HashSet; vytvorenie inštancie private final Set lines = new HashSet(); pridanie linky ­ lines.add(line); dopyt na prítomnosť ­ lines.contains(line); java.util.Set ­ použitie odobratie linky ­ lines.remove(line); vyprázdnenie množiny ­ stops.clear() iterácia ­ for­each for (Line line: lines) { System.out.println(lines); } mapy = asociatívne polia pole ­ indexované číslami 0..length ­ 1 asociatívne pole ­ indexované objektami množina objektov ­ kľúče ­ každý iba raz, na poradí nezáleží na každý kľúč viazaný nejaký objekt ­ hodnota ­ všeobecná kolekcia mapy = asociatívne polia metódy ­ put, remove ­ containsKey, containsValue ­ get implementované triedami ­ HashMap ­ pomocou hashovania ­ TreeMap ­ pomocou čierno­bieleho stromu java.util.Map ­ použitie import balíčkov import java.util.Map; import java.util.HashMap; vytvorenie inštancie private final Map tickets = new HashSet(); pridanie linky ­ tickets.put(id, ticket); dopyt na prítomnosť ­ tickets.contains(id); java.util.Map ­ použitie odobratie linky ­ tickets.remove(id); vyprázdnenie množiny ­ tickets.clear() iterácia ­ for­each for (Ticket ticket: tickets.values()) { System.out.println(ticket); } for (Integer id: tickets.keySet()) { System.out.println(tickets.get(id)); }