Sobes.tech
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