Junior
Care este diferența dintre List și Set în Java?
sobes.tech AI
Răspuns de la AI
Diferitele principale:
- Ordinea elementelor:
Listpăstrează ordinea în care sunt adăugate elementele.Setnu garantează ordinea elementelor (depinde de implementarea specifică, de exemplu,LinkedHashSetpăstrează ordinea inserției).
- Duble:
Listpermite stocarea elementelor duplicate.Setstochează doar elemente unice.
- Accesul la elemente:
Listpermite accesul la elemente după index.Setnu oferă acces direct la elemente după index, accesul se face prin iterator sau parcurgere.
- Performanță:
- Operațiile de căutare și adăugare în
Listcu multe elemente pot fi mai lente decât înSet(de exemplu, înHashSet). - Operațiile de adăugare și ștergere în
Set(de exemplu,HashSet) au, în general, o complexitate temporară medie constantă.
- Operațiile de căutare și adăugare în
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 |