Sobes.tech
Junior — Middle

V čom spočíva rozdiel medzi implementáciou kolekcie Set a kolekcie ArrayList v Jave?

sobes.tech AI

Odpoveď od AI

Hlavný rozdiel medzi kolekciami Set a ArrayList v Jave spočíva v ich správaní a implementácii:

  • Set — je kolekcia, ktorá neumožňuje duplicitné prvky. Poradie prvkov nie je garantované (napríklad v HashSet), hoci existujú implementácie s radením (TreeSet, LinkedHashSet).
  • ArrayList — je zoradený zoznam, ktorý umožňuje duplicitné prvky a zachováva poradie pridania.

Z pohľadu implementácie:

  • ArrayList je založený na poli, ktoré sa dynamicky rozširuje pri pridávaní prvkov. Rýchly prístup podľa indexu.
  • HashSet je zvyčajne implementovaný na základe HashMap, kde prvky fungujú ako kľúče. To zabezpečuje rýchle vyhľadávanie a kontrolu jedinečnosti.

Príklad:

Set<String> set = new HashSet<>();
set.add("apple");
set.add("apple"); // nebude pridaný druhýkrát

List<String> list = new ArrayList<>();
list.add("apple");
list.add("apple"); // oba prvky budú pridané