Junior — Middle
Čime se razlikuje implementacija kolekcije Set od kolekcije ArrayList u Javi?
sobes.tech АИ
Одговор од АИ
Glavna razlika između kolekcija Set i ArrayList u Javi leži u njihovom ponašanju i implementaciji:
- Set — je kolekcija koja ne dozvoljava duplikate elemenata. Redosled elemenata nije garantovan (na primer, u HashSet), iako postoje implementacije sa redosledom (TreeSet, LinkedHashSet).
- ArrayList — je sortirana lista koja dozvoljava duplikate i čuva redosled dodavanja elemenata.
Sa aspekta implementacije:
- ArrayList se zasniva na nizu koji se dinamički proširuje pri dodavanju elemenata. Brz pristup po indeksu.
- HashSet je obično implementiran na osnovu HashMap, gde elementi funkcionišu kao ključevi. To omogućava brzo pretraživanje i proveru jedinstvenosti.
Primer:
Set<String> set = new HashSet<>();
set.add("apple");
set.add("apple"); // neće biti dodat drugi put
List<String> list = new ArrayList<>();
list.add("apple");
list.add("apple"); // oba elementa će biti dodata