Direct naar de hoofdinhoud
Module 6 · Les 1 van 211/14 in de cursus~15 min
Modulelessen (1/2)

Instellen en in kaart brengen

Naast de klasse ArrayList (die een geordende lijst met elementen vertegenwoordigt), biedt het Java Collections Framework nog twee andere fundamentele interfaces: Set (voor unieke elementen) en Map (voor sleutel-waarde-associaties).

Set: collecties van unieke elementen

Een Set is een verzameling die geen dubbele elementen mag bevatten. De meest gebruikelijke implementatie is HashSet, intern gebaseerd op een hashtabel, die uitstekende prestaties garandeert voor invoeg-, verwijderings- en aanwezigheidsverificatiebewerkingen.

Java
import java.util.HashSet;
import java.util.Set;

Set<String> uniqueNames = new HashSet<>();
uniqueNames.add("Alice");
uniqueNames.add("Bob");
uniqueNames.add("Alice"); // This insertion will be ignored since "Alice" is already present

System.out.println(uniqueNames.size()); // Prints 2

Kaart: Sleutel-waarde-associaties

Een Map wijst unieke sleutels toe aan waarden. Het mag geen dubbele sleutels bevatten: elke sleutel is gekoppeld aan maximaal één waarde. De standaardimplementatie is HashMap.

Java
import java.util.HashMap;
import java.util.Map;

Map<String, Integer> ageMap = new HashMap<>();
// Insert or update key-value pairs
ageMap.put("Alice", 25);
ageMap.put("Bob", 30);

// Retrieve value by key
int aliceAge = ageMap.get("Alice"); // Returns 25

// Verify if a key or value exists
boolean hasBob = ageMap.containsKey("Bob"); // Returns true

Itereren over een kaart

Om sleutel-waardeparen te herhalen, kunnen we een for-each lus gebruiken op de set items (entrySet()) die door de kaart wordt geleverd.

Java
for (Map.Entry<String, Integer> entry : ageMap.entrySet()) {
    System.out.println(entry.getKey() + " is " + entry.getValue() + " years old.");
}

Probeer het zelf

Oefening#java.m6.l1.e1
Pogingen: 0Laden…

Voltooi de code door een HashSet van tekenreeksen met de naam items te declareren. Voeg de elementen 'apple', 'banaan' en 'apple' opnieuw toe en druk vervolgens de grootte van de set af met System.out.println.

Editor laden…
Toon hint

Onthoud dat duplicaten niet zijn toegestaan ​​in een `Set`, en `items.size()` zal het werkelijke aantal ingevoegde unieke elementen retourneren.

Oplossing beschikbaar na 3 pogingen

Oefening#java.m6.l1.e2
Pogingen: 0Laden…

Voltooi de code door een HashMap met de naam Ages te declareren met String-sleutels en Integer-waarden. Koppel de sleutel 'Alice' aan 25 en de sleutel 'Bob' aan 30, haal vervolgens de leeftijd van Bob op en druk deze af.

Editor laden…
Toon hint

Gebruik de `put`-methode om paren in te voegen en de `get`-methode om waarden op te halen op basis van sleutels.

Oplossing beschikbaar na 3 pogingen

Oefening#java.m6.l1.e3
Pogingen: 0Laden…

Vul de code in door te controleren of de landenkaart de sleutel 'FR' bevat en druk het Booleaanse resultaat af.

Editor laden…
Toon hint

Gebruik de methode `containsKey` voor het object `countries` om te controleren op de aanwezigheid van de vereiste sleutel.

Oplossing beschikbaar na 3 pogingen