Zpo-2-wyk-Slajd16
Set: specyfikacja
Zbiór posiada, odmienną niż lista, semantykę: nie zachowuje kolejności elementów, natomiast wyklucza istnienie duplikatów. O elemencie można zatem powiedzieć jedynie, czy należy do zbioru (w jednym egzemplarzu), czy nie. Co ciekawe, interfejs ten nie definiuje żadnych nowych metod w porównaniu do interfejsu Collection. Wynika to z faktu, że trudno wskazać funkcjonalność, która wyróżniałaby zbiór od kolekcji. Warto zadać pytanie, dlaczego zatem do jego reprezentacji powołano specjalny interfejs? Otóż wskazanie, że określony obiekt jest typu Set niesie informację bardziej szczegółową niż w przypadku zwykłej kolekcji, dlatego zostało to podkreślone przez specjalny typ obiektu.
Podobnie, jak w przypadku listy, zbiór posiada w JDK kilka gotowych implementacji. Jedną z nich jest HashSet, w którym unikatowość elementów jest zapewniona przez zastosowanie tablicy asocjacyjnej; w przypadku klasy TreeSet rolę tablicy pełni drzewo dwukolorowe.