Junior — Middle
Czym różni się implementacja kolekcji Set od kolekcji ArrayList w Java?
sobes.tech AI
Odpowiedź od AI
Główna różnica między kolekcjami Set i ArrayList w Javie polega na ich zachowaniu i implementacji:
- Set — to kolekcja, która nie pozwala na duplikaty elementów. Kolejność elementów nie jest gwarantowana (np. w HashSet), choć istnieją implementacje z uporządkowaniem (TreeSet, LinkedHashSet).
- ArrayList — to uporządkowana lista, która pozwala na duplikaty i zachowuje kolejność dodawania elementów.
Z punktu widzenia implementacji:
- ArrayList opiera się na tablicy, która dynamicznie się powiększa podczas dodawania elementów. Szybki dostęp po indeksie.
- HashSet jest zwykle implementowany na bazie HashMap, gdzie elementy pełnią rolę kluczy. Zapewnia to szybkie wyszukiwanie i sprawdzanie unikalności.
Przykład:
Set<String> set = new HashSet<>();
set.add("apple");
set.add("apple"); // nie zostanie dodany drugi raz
List<String> list = new ArrayList<>();
list.add("apple");
list.add("apple"); // oba elementy zostaną dodane