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é