# Wat is een Java HashMap en hoe gebruik je deze?

Met de HashMap-klasse in Java kunt u gegevens opslaan in sleutel-waardeparen. Dit maakt het niet alleen gemakkelijker om een lijst op te halen en te beheren, maar biedt u ook tal van toegangsopties. We zullen hier de belangrijkste methoden bespreken.

## Wat zijn HashMaps in Java?

Er zijn verschillende manieren om gegevens op te slaan en op te halen. Welk type opslag het beste werkt, hangt af van hoe u de gegevens wilt gebruiken. In veel gevallen is de Java HashMap-klasse waarschijnlijk de beste oplossing. In tegenstelling tot andere methoden slaat deze klasse gegevens op als **sleutel-waardeparen**. Dit betekent dat aan elke sleutel precies één waarde wordt toegewezen. Als u een waarde wilt ophalen, kunt u de bijbehorende sleutel gebruiken om het gewenste resultaat te krijgen. Sleutels en waarden kunnen bestaan uit totaal verschillende gegevenstypen, waaronder tekenreeksen, getallen of andere objecten.

De Java HashMap-klasse biedt verschillende voordelen. Het eerste voordeel is dat u snel kunt zoeken binnen de programmeertaal. De sleutel-waardebenadering zorgt er ook voor dat er niet meerdere waarden aan één sleutel worden toegewezen, **waardoor duplicaties worden voorkomen**. U kunt echter wel hetzelfde object meerdere keren toevoegen met verschillende sleutels. Dit type opslag- en zoekfunctionaliteit heeft een positief effect op de prestaties in vergelijking met rigide lijsten, die aanzienlijk minder flexibel zijn. Dit is ook een van de grote voordelen van sleutel-waardeopslagplaatsen, die hetzelfde principe gebruiken. In de volgende paragrafen laten we u zien hoe u Java HashMaps kunt maken en gebruiken.

## Hoe HashMaps in Java te maken en te gebruiken

Om een nieuwe HashMap in Java te maken, moet je eerst de klasse importeren. Gebruik hiervoor het Java-commando `import`. De code ziet er als volgt uit:

```java
import java.util.HashMap;
HashMap<String, String> nameOfTheHashMap = new HashMap<String, String> ();
```

De twee gegevenstypen, die worden gescheiden door een komma (in dit geval `String, String`), zijn de sleutel en de waarde.

### Een nieuwe HashMap maken

Om beter uit te leggen hoe Java HashMaps werken, hebben we een eenvoudig voorbeeld bedacht. Voor ons voorbeeld hebben we een lijst met klanten die een bedrijf wil opslaan en op elk moment wil kunnen raadplegen. De lijst bevat de naam van elke klant en een uniek klantnummer. Hoewel het klantnummer (de sleutel in ons voorbeeld) altijd uniek is, is het mogelijk dat meerdere klanten dezelfde naam hebben. Elk van deze klanten heeft echter een eigen uniek nummer. Dit nummer wordt opgeslagen als een integer gegevenstype en de namen als strings. Hieronder wordt uitgelegd hoe u dit in een Java HashMap kunt instellen:

```java
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	}
}
```

### Elementen toevoegen

Nu hebben we de Java HashMap, maar deze is nog leeg. Om nieuwe sleutel-waardeparen toe te voegen, gaan we de methode `put()` gebruiken. Zo werkt het:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	System.out.println(customerList);
	}
}
```

We gebruiken het commando `System.out.println` om onze klantenlijst weer te geven. De uitvoer zou er als volgt uit moeten zien:

```java
{1077=Jerry Mowry, 15312=Peter Smith, 73329=Maria Grosso}
```

### Elementen ophalen

Nu hebben we een klantenlijst opgezet die talrijke vermeldingen kan bevatten. We willen ook elke klantvermelding afzonderlijk kunnen openen. Hiervoor geven we de sleutel door aan de methode **get()**. Hier is een voorbeeld van hoe dit werkt:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	System.out.println(customerList.get(1077));
	}
}
```

Alleen de naam ‘Jerry Mowry’ mag worden weergegeven.

### Verwijderen van vermeldingen

Als u een vermelding wilt verwijderen, gebruikt u de `remove()` methode. Hier volgt een voorbeeld van hoe u deze methode kunt gebruiken:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	customerList.remove(1077);
	System.out.println(customerList);
	}
}
```

De uitvoer ziet er nu als volgt uit:

```java
{15312=Peter Smith, 73329=Maria Grosso}
```

Een andere optie is om de hele lijst te verwijderen. Gebruik hiervoor de `clear()`.

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	customerList.clear();
	System.out.println(customerList);
	}
}
```

Nu is de enige uitvoer die we krijgen deze:

```java
{ }
```

## Hoe bepaal je het aantal inzendingen?

Hoewel onze Java HashMap vrij eenvoudig is, kunt u deze klasse ook gebruiken om grotere, complexere projecten te beheren. Bij een groter project wilt u misschien het exacte aantal items bepalen dat u hebt. Dit is immers uw volledige klantenbestand. U kunt hiervoor `size()` gebruiken. Dat doet u als volgt:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	System.out.println(customerList.size());
	}
}
```

In ons voorbeeld wordt het getal 3 weergegeven.

### Hoe alleen sleutels of waarden weergeven

U kunt ook een lijst verkrijgen die alleen de sleutels of de waarden bevat, met behulp van een for-each-lus. Gebruik de methode `keySet()` om sleutels op te halen en de methode `values()` voor waarden. In het volgende codevoorbeeld gebruiken we `values()`:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	for (String i : customerList.values()) {
		System.out.println(i);
		}
	}
}
```

De uitvoer is:

```java
Jerry Mowry
Peter Smith
Maria Grosso
```

### Controleren of een HashMap een specifieke waarde of sleutel bevat

Naast het openen van een specifieke invoer, kunt u ook controleren of een invoer al bestaat in een Java HashMap. U kunt dit doen met behulp van methode `containsKey()` (voor sleutels) en methode `containsValue()` (voor waarden). Als het element is opgenomen, is de uitvoer ‘true’. Als het element niet in de HashMap staat, is de uitvoer ‘false’. Hieronder ziet u hoe beide methoden werken:

```java
public class Main {
public static void main(String[] args) {
	HashMap<Integer, String> customerList = new HashMap<>();
	customerList.put (1077, "Jerry Mowry");
	customerList.put (15312, "Peter Smith");
	customerList.put (73329, "Maria Grosso");
	System.out.println(customerList.containsKey(15312));
	System.out.println(customerList.containsValue("Stuart Miller");
	}
}
```

Aangezien de sleutel ‘15312’ is opgenomen, maar de waarde ‘Stuart Miller’ niet, ziet de uitvoer er als volgt uit.

```java
true
false
```


This is a markdown version of: [https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/java-hashmap/](https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/java-hashmap/) for AI/LLM consumption.