Sobes.tech
Junior

V čom sa líši List od Set v Jave?

sobes.tech AI

Odpoveď od AI

Hlavné rozdiely:

  1. Poradie prvkov:
    • List zachováva poradie, v akom boli prvky pridané.
    • Set nezaručuje poradie prvkov (závisí od konkrétnej implementácie, napríklad LinkedHashSet zachováva poradie vloženia).
  2. Duplicitné prvky:
    • List umožňuje uloženie duplicitných prvkov.
    • Set uchováva iba jedinečné prvky.
  3. Prístup k prvkom:
    • List umožňuje prístup k prvkom podľa indexu.
    • Set neposkytuje priame prístup k prvkom podľa indexu, prístup sa vykonáva cez iterátor alebo cyklus.
  4. Výkon:
    • Operácie vyhľadávania a pridávania v List s veľkým počtom prvkov môžu byť pomalšie ako v Set (napríklad v HashSet).
    • Operácie pridávania a odstraňovania v Set (napríklad HashSet) majú zvyčajne priemernú konštantnú časovú zložitosť.

Príklad:

// Zoznam, ktorý umožňuje duplicitné prvky a zachováva poradie
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Apple");
System.out.println(list); // Výstup: [Apple, Banana, Apple]

// Množina, ktorá obsahuje iba jedinečné prvky
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Apple");
System.out.println(set); // Výstup: [Apple, Banana] (poradie sa môže líšiť)

Porovnávacia tabuľka:

Aspekt List Set
Poradie Zachováva sa Nie je garantované (závisí od implementácie)
Duplicitné prvky Povolené Nie sú povolené
Prístup podľa indexu Áno Nie
Rozhranie java.util.List java.util.Set
Typické použitie Usporiadané kolekcie, zoznamy Unikátne kolekcie, množiny