Java HashMap
Java HashMap
In het ArrayList
hoofdstuk heb je geleerd dat Arrays items opslaat als een geordende verzameling en dat je ze moet benaderen met een indexnummer ( int
type). A HashMap
echter, sla items op in " sleutel / waarde "-paren, en u kunt ze benaderen via een index van een ander type (bijv. een String
).
Het ene object wordt gebruikt als een sleutel (index) voor een ander object (waarde). Het kan verschillende typen opslaan: String
sleutels en Integer
waarden, of hetzelfde type, zoals: String
sleutels en String
waarden:
Voorbeeld
Maak een HashMap
object met de naam capitalCities waarin String
sleutels en String
waarden worden opgeslagen :
import java.util.HashMap; // import the HashMap class
HashMap<String, String> capitalCities = new HashMap<String, String>();
Items toevoegen
De HashMap
klasse heeft veel bruikbare methoden. Om er bijvoorbeeld items aan toe te voegen, gebruikt u de put()
methode:
Voorbeeld
// Import the HashMap class
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Create a HashMap object called capitalCities
HashMap<String, String> capitalCities = new HashMap<String, String>();
// Add keys and values (Country, City)
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
Toegang tot een item
Om toegang te krijgen tot een waarde in de HashMap
, gebruikt u de get()
methode en verwijst u naar de sleutel:
Voorbeeld
capitalCities.get("England");
Een item verwijderen
Gebruik de remove()
methode om een item te verwijderen en raadpleeg de sleutel:
Voorbeeld
capitalCities.remove("England");
Gebruik de clear()
methode om alle items te verwijderen:
Voorbeeld
capitalCities.clear();
HashMap-grootte
Gebruik de size()
methode om erachter te komen hoeveel items er zijn:
Voorbeeld
capitalCities.size();
Loop door een HashMap
Loop door de items van a HashMap
met een for-each- lus.
Opmerking: gebruik de keySet()
methode als u alleen de sleutels wilt en gebruik de values()
methode als u alleen de waarden wilt:
Voorbeeld
// Print keys
for (String i : capitalCities.keySet()) {
System.out.println(i);
}
Voorbeeld
// Print values
for (String i : capitalCities.values()) {
System.out.println(i);
}
Voorbeeld
// Print keys and values
for (String i : capitalCities.keySet()) {
System.out.println("key: " + i + " value: " + capitalCities.get(i));
}
Andere types
Sleutels en waarden in een HashMap zijn eigenlijk objecten. In de bovenstaande voorbeelden hebben we objecten van het type "String" gebruikt. Onthoud dat een String in Java een object is (geen primitief type). Als u andere typen wilt gebruiken, zoals int, moet u een equivalente wrapperklasse opgeven : Integer
. Gebruik voor andere primitieve typen: Boolean
for boolean, Character
for char, Double
for double, etc:
Voorbeeld
Maak een HashMap
object met de naam
mensen dat String
sleutels en
Integer
waarden zal opslaan :
// Import the HashMap class
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Create a HashMap object called people
HashMap<String, Integer> people = new HashMap<String, Integer>();
// Add keys and values (Name, Age)
people.put("John", 32);
people.put("Steve", 30);
people.put("Angie", 33);
for (String i : people.keySet()) {
System.out.println("key: " + i + " value: " + people.get(i));
}
}
}