Sobes.tech
Junior

Vertel over de Map-collectie in Java en de kenmerken ervan.

sobes.tech AI

Antwoord van AI

Map — is een interface in Java Collection Framework die een collectie van "sleutel-waarde"-paren voorstelt. Sleutels zijn uniek, waarden kunnen herhaald worden.

Belangrijkste kenmerken:

  • De sleutel wordt gebruikt om toegang te krijgen tot de bijbehorende waarde.
  • Dezelfde sleutel kan niet twee keer worden toegevoegd. Bij het proberen toe te voegen van een bestaande sleutel, wordt de oude waarde vervangen door de nieuwe.
  • Map erft niet van de interface Collection. Het heeft eigen methoden om te werken met "sleutel-waarde"-paren.
  • De volgorde van de "sleutel-waarde"-paren kan variëren afhankelijk van de specifieke implementatie.

Populaire implementaties van Map:

  • HashMap: Garandeert geen volgorde van de elementen. Biedt hoge prestaties voor de meeste operaties (invoegen, ophalen, verwijderen) bij afwezigheid van hash-conflicten.
  • LinkedHashMap: Slaat de elementen op in de volgorde van toevoeging (of in toegang volgorde, indien correct geconfigureerd).
  • TreeMap: Slaat de elementen op in gesorteerde volgorde op basis van de sleutel (natuurlijke volgorde of door een comparator). Biedt logaritmische tijd voor de meeste operaties.

Voorbeeldmethoden:

// Waarde ophalen op basis van sleutel
Object value = map.get(key);

// Paar sleutel-waarde toevoegen of bijwerken
Object oldValue = map.put(key, value);

// Paar verwijderen op basis van sleutel
Object removedValue = map.remove(key);

// Controleren of een sleutel bestaat
boolean containsKey = map.containsKey(key);

// Controleren of een waarde bestaat
boolean containsValue = map.containsValue(value);

// Alle sleutels verkrijgen
Set<KeyType> keys = map.keySet();

// Alle waarden verkrijgen
Collection<ValueType> values = map.values();

// Alle entries (sleutel-waarde paren) verkrijgen
Set<Map.Entry<KeyType, ValueType>> entries = map.entrySet();

// Grootte van de Map
int size = map.size();

Gebruik van Map.Entry bij iteratie:

// Iteratie over de Entry set
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
    KeyType key = entry.getKey();
    ValueType value = entry.getValue();
    // ...
}