Sobes.tech
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 interface Collection niet 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