Java HashMap


Java HashMap

In het ArrayListhoofdstuk heb je geleerd dat Arrays items opslaat als een geordende verzameling en dat je ze moet benaderen met een indexnummer ( inttype). A HashMapechter, 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: Stringsleutels en Integerwaarden, of hetzelfde type, zoals: Stringsleutels en Stringwaarden:

Voorbeeld

Maak een HashMapobject 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 HashMapklasse 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 HashMapmet 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: Booleanfor boolean, Characterfor char, Doublefor double, etc:

Voorbeeld

Maak een HashMapobject 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));
    }
  }
}