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