Junior — Middle
V čem spočívá rozdíl mezi implementací kolekce Set a kolekce ArrayList v Javě?
sobes.tech AI
Odpověď od AI
Hlavní rozdíl mezi kolekcemi Set a ArrayList v Javě spočívá v jejich chování a implementaci:
- Set — je kolekce, která neumožňuje duplicitní prvky. Pořadí prvků není garantováno (například u HashSet), existují však implementace s řazením (TreeSet, LinkedHashSet).
- ArrayList — je seřazený seznam, který umožňuje duplicitní prvky a zachovává pořadí přidání.
Z pohledu implementace:
- ArrayList je založen na poli, které se dynamicky rozšiřuje při přidávání prvků. Rychlý přístup podle indexu.
- HashSet je obvykle implementován na základě HashMap, kde prvky fungují jako klíče. To zajišťuje rychlé vyhledávání a kontrolu unikátnosti.
Příklad:
Set<String> set = new HashSet<>();
set.add("apple");
set.add("apple"); // nebude přidáno podruhé
List<String> list = new ArrayList<>();
list.add("apple");
list.add("apple"); // oba prvky budou přidány