Sobes.tech
Junior

Care este diferența dintre List și Set în Java?

sobes.tech AI

Răspuns de la AI

Diferitele principale:

  1. Ordinea elementelor:
    • List păstrează ordinea în care sunt adăugate elementele.
    • Set nu garantează ordinea elementelor (depinde de implementarea specifică, de exemplu, LinkedHashSet păstrează ordinea inserției).
  2. Duble:
    • List permite stocarea elementelor duplicate.
    • Set stochează doar elemente unice.
  3. Accesul la elemente:
    • List permite accesul la elemente după index.
    • Set nu oferă acces direct la elemente după index, accesul se face prin iterator sau parcurgere.
  4. Performanță:
    • Operațiile de căutare și adăugare în List cu multe elemente pot fi mai lente decât în Set (de exemplu, în HashSet).
    • Operațiile de adăugare și ștergere în Set (de exemplu, HashSet) au, în general, o complexitate temporară medie constantă.

Exemplu:

// Listă care permite duplicate și păstrează ordinea
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Apple");
System.out.println(list); // Ieșire: [Apple, Banana, Apple]

// Mulțime care stochează doar elemente unice
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Apple");
System.out.println(set); // Ieșire: [Apple, Banana] (ordinea poate varia)

Tabel comparativ:

Aspect List Set
Ordine Se păstrează Nu este garantat (depinde de implementare)
Dubluri Permise Nu sunt permise
Acces după index Da Nu
Interfață java.util.List java.util.Set
Utilizare tipică Colecții ordonate, liste Colecții unice, mulțimi