Middle
Beschrijf de hiërarchie van collecties in Java.
sobes.tech AI
Antwoord van AI
De hiërarchie van collecties in Java is gebaseerd op een reeks interfaces die een standaardmanier bieden om objectgroepen weer te geven.
Belangrijke interfaces:
Collection: de basishierarchie-interface. Definieert basisbewerkingen die op alle collecties kunnen worden toegepast: toevoegen, verwijderen, controleren op aanwezigheid van elementen, bepalen van de grootte.Set: collectie zonder duplicaten en zonder vaste volgorde van elementen.List: geordende collectie met toegang tot elementen via index. Kan duplicaten bevatten.Queue: collectie bedoeld om elementen op te slaan voor verwerking. Volgt meestal de FIFO-regel (First-In, First-Out), maar er zijn ook andere implementaties.Deque: dubbele eindige wachtrij. Ondersteunt het toevoegen en verwijderen van elementen aan beide uiteinden.Map: collectie die paren "sleutel-waarde" opslaat. De sleutels moeten uniek zijn. Breidt de interfaceCollectionniet uit.
Belangrijke implementerende klassen (voorbeelden):
| Interface | Implementerende klassen (voorbeelden) | Beschrijving |
|---|---|---|
Set |
HashSet, LinkedHashSet, TreeSet |
Zonder duplicaten. HashSet - zonder volgorde, LinkedHashSet - behoudt de invoerorde, TreeSet - gesorteerd. |
List |
ArrayList, LinkedList, Vector |
Geordend. ArrayList - gebaseerd op array, LinkedList - gebaseerd op gekoppelde lijst, Vector - gesynchroniseerd (verouderd). |
Queue |
LinkedList, PriorityQueue |
Voor verwerking. LinkedList - FIFO, PriorityQueue - gebaseerd op prioriteiten. |
Deque |
ArrayDeque, LinkedList |
Dubbele eindige wachtrij. ArrayDeque - gebaseerd op array, LinkedList - gebaseerd op gekoppelde lijst. |
Map |
HashMap, LinkedHashMap, TreeMap, Hashtable |
Sleutel-waarde. HashMap - zonder gegarandeerde volgorde, LinkedHashMap - behoudt invoer- / toegangvolgorde, TreeMap - gesorteerd op sleutels, Hashtable - gesynchroniseerd (verouderd). |
Voorbeeld van gebruik van ArrayList:
// Aanmaken van een ArrayList van strings
List<String> fruits = new ArrayList<>();
// Elementen toevoegen
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// Toegang via index
String firstFruit = fruits.get(0); // Apple
// Grootte van de collectie
int size = fruits.size(); // 3
Voorbeeld van gebruik van HashSet:
// Aanmaken van een HashSet van integers
Set<Integer> numbers = new HashSet<>();
// Elementen toevoegen (duplicaten worden genegeerd)
numbers.add(1);
numbers.add(2);
numbers.add(2); // Genegeerd
// Grootte van de collectie
int size = numbers.size(); // 2
Voorbeeld van gebruik van HashMap:
// Aanmaken van een HashMap: sleutel - String, waarde - Integer
Map<String, Integer> ages = new HashMap<>();
// Paar sleutel-waarde toevoegen
ages.put("Alice", 30);
ages.put("Bob", 25);
// Waarde ophalen via sleutel
int ageAlice = ages.get("Alice"); // 30
// Controleren of een sleutel bestaat
boolean hasBob = ages.containsKey("Bob"); // true