Junior
389
Wat is het verschil tussen List en Set in Java?
Antwoord van AI
sobes.tech AI
Belangrijkste verschillen:
- Volgorde van elementen:
Listbehoudt de volgorde waarin elementen worden toegevoegd.Setgarandeert de volgorde niet (afhankelijk van de specifieke implementatie, bijvoorbeeldLinkedHashSetbehoudt de invoer volgorde).
- Duplicaten:
Liststaat duplicaten toe.Setbevat alleen unieke elementen.
- Toegang tot elementen:
Listbiedt toegang tot elementen via index.Setbiedt geen directe toegang tot elementen via index, toegang gebeurt via iterator of loop.
- Prestaties:
- Zoek- en toevoegbewerkingen in
Listmet veel elementen kunnen trager zijn dan inSet(bijvoorbeeld inHashSet). - Toevoeg- en verwijderbewerkingen in
Set(bijvoorbeeldHashSet) hebben meestal een gemiddelde constante tijdcomplexiteit.
- Zoek- en toevoegbewerkingen in
Voorbeeld:
// Lijst die duplicaten toestaat en de volgorde behoudt
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Apple");
System.out.println(list); // Output: [Apple, Banana, Apple]
// Set dat alleen unieke elementen bevat
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Apple");
System.out.println(set); // Output: [Apple, Banana] (de volgorde kan variëren)
Vergelijkingstabel:
| Aspect | List |
Set |
|---|---|---|
| Volgorde | Behouden | Niet gegarandeerd (afhankelijk van de implementatie) |
| Duplicaten | Toegestaan | Niet toegestaan |
| Toegang via index | Ja | Nee |
| Interface | java.util.List |
java.util.Set |
| Typisch gebruik | Geordende collecties, lijsten | Unieke collecties, verzamelingen |