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