Sobes.tech
Junior

Welke collecties bestaan er in Java?

sobes.tech AI

Antwoord van AI

In Java, bestaan de volgende hoofdcollectie-interfaces die deel uitmaken van het Java Collections Framework:

  • Collection: Basissinterface die algemene operaties op groepen objecten definieert. Erven subinterfaces:

    • List: Geordende collectie (sequentie). Elementen kunnen zich herhalen. Ondersteunt toegang via index.
      • ArrayList: Dynamische array. Goed voor snelle toegang via index en toevoegen aan het einde. Langzaam voor invoegen/verwijderen in het midden.
      • LinkedList: Dubbel gekoppelde lijst. Goed voor invoegen/verwijderen aan het begin of einde. Langzaam voor toegang via index.
      • Vector: Gesynchroniseerde versie van ArrayList. Wordt als verouderd beschouwd.
      • Stack: Erft van Vector, implementeert het gedrag van een stack (LIFO).
    • Set: Collectie die alleen unieke elementen bevat. Garandeert geen volgorde.
      • HashSet: Implementatie met hash-tabel. De snelste voor toevoegen, verwijderen en controleren op aanwezigheid. Garandeert geen volgorde.
      • LinkedHashSet: Implementatie als hash-tabel + gekoppelde lijst. Garandeert invoer volgorde.
      • TreeSet: Implementatie met rode-zwart boom. Slaat elementen op in gesorteerde volgorde. Langzamer dan HashSet, maar sneller dan LinkedHashSet voor bereikzoekopdrachten.
    • Queue: Collectie ontworpen voor het opslaan van elementen vóór verwerking (FIFO - First-In, First-Out).
      • PriorityQueue: Elementen worden opgeslagen volgens hun natuurlijke ordening of een comparator. Hoogste prioriteit wordt geëxtraheerd.
      • Deque: (Double Ended Queue) Ondersteunt invoegen en verwijderen aan beide uiteinden.
        • ArrayDeque: Implementatie van Deque gebaseerd op array. Efficiënter dan LinkedList als wachtrij/stapel.
  • Map: Collectie die paren sleutel-waarde opslaat. Sleutels zijn uniek.

    • HashMap: Implementatie met hash-tabel. De snelste voor toevoegen, verwijderen en controleren op aanwezigheid. Garandeert geen volgorde van sleutels.
    • LinkedHashMap: Implementatie als hash-tabel + gekoppelde lijst. Garandeert invoer- of toegangvolgorde.
    • TreeMap: Implementatie met rode-zwart boom. Slaat sleutel-waarde paren op in gesorteerde volgorde op basis van sleutels. Langzamer dan HashMap.
    • HashTable: Gesynchroniseerde versie van HashMap. Wordt als verouderd beschouwd.

Er bestaan ook verouderde klassen die niet tot het JCF behoren, maar soms worden ze aangetroffen:

  • Vector
  • Stack
  • Hashtable
  • Enumeration (interface)