Java HashMap (mit Beispielen)

In diesem Tutorial lernen wir anhand von Beispielen die Java HashMap-Klasse und ihre verschiedenen Operationen kennen.

Die HashMapKlasse des Java-Sammlungsframeworks bietet die Funktionalität der Hash-Tabellendatenstruktur.

Es speichert Elemente in Schlüssel / Wert- Paaren. Hier sind Schlüssel eindeutige Bezeichner, mit denen jeder Wert auf einer Karte zugeordnet wird.

Die HashMapKlasse implementiert die Map-Schnittstelle.

Java HashMap-Implementierung

Erstellen Sie eine HashMap

Um eine Hash-Map zu erstellen, müssen wir java.util.HashMapzuerst das Paket importieren . Sobald wir das Paket importiert haben, können wir hier Hashmaps in Java erstellen.

 // hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();

Im obigen Code haben wir eine Hashmap mit dem Namen numbers erstellt. Hier steht K für den Schlüsseltyp und V für den Wertetyp. Beispielsweise,

 HashMap numbers = new HashMap();

Hier ist die Art des Schlüssels ist Stringund die Art des Wertes ist Integer.

Beispiel 1: Erstellen Sie eine HashMap in Java

 import java.util.HashMap; class Main ( public static void main(String() args) ( // create a hashmap HashMap languages = new HashMap(); // add elements to hashmap languages.put("Java", 8); languages.put("JavaScript", 1); languages.put("Python", 3); System.out.println("HashMap: " + languages); ) )

Ausgabe

 HashMap: (Java = 8, JavaScript = 1, Python = 3)

Im obigen Beispiel haben wir HashMapbenannte Sprachen erstellt.

Hier haben wir die put()Methode verwendet, um der Hashmap Elemente hinzuzufügen. Wir werden put()später in diesem Tutorial mehr über die Methode erfahren .

Grundlegende Operationen auf Java HashMap

Die HashMapKlasse bietet verschiedene Methoden, um verschiedene Operationen an Hashmaps auszuführen. In diesem Tutorial werden einige häufig verwendete Arraylistenoperationen vorgestellt:

  • Elemente hinzufügen
  • Zugriffselemente
  • Elemente ändern
  • Elemente entfernen

1. Fügen Sie einer HashMap Elemente hinzu

Um der Hashmap ein einzelnes Element hinzuzufügen, verwenden wir die put()Methode der HashMapKlasse. Beispielsweise,

 import java.util.HashMap; class Main ( public static void main(String() args) ( // create a hashmap HashMap numbers = new HashMap(); System.out.println("Initial HashMap: " + numbers); // put() method to add elements numbers.put("One", 1); numbers.put("Two", 2); numbers.put("Three", 3); System.out.println("HashMap after put(): " + numbers); ) )

Ausgabe

 Anfängliche HashMap: () HashMap nach put (): (Eins = 1, Zwei = 2, Drei = 3)

Im obigen Beispiel haben wir HashMapbenannte Zahlen erstellt. Hier haben wir die put()Methode verwendet, um Elementen Elemente hinzuzufügen.

Beachten Sie die Aussage,

 numbers.put("One", 1);

Hier übergeben wir den StringWert Eins als Schlüssel und den IntegerWert 1 als Wert an die put()Methode.

Empfohlene Lektüre

  • Java HashMap put ()
  • Java HashMap putAll ()
  • Java HashMap putIfAbsent ()

2. Greifen Sie auf HashMap-Elemente zu

Wir können die get()Methode verwenden, um auf den Wert aus der Hashmap zuzugreifen. Beispielsweise,

 import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // get() method to get value String value = languages.get(1); System.out.println("Value at index 1: " + value); ) )

Ausgabe

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Wert bei Index 1: Java

Beachten Sie im obigen Beispiel den Ausdruck:

 languages.get(1);

Hier nimmt die get()Methode den Schlüssel als Argument und gibt den entsprechenden Wert zurück, der dem Schlüssel zugeordnet ist.

Wir können auch die Zugangsschlüssel , Werte und Schlüssel / Wert - Paare der hashmap als Satz Ansichten verwendet keySet(), values()und entrySet()Verfahren sind. Beispielsweise,

 import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // return set view of keys // using keySet() System.out.println("Keys: " + languages.keySet()); // return set view of values // using values() System.out.println("Values: " + languages.values()); // return set view of key/value pairs // using entrySet() System.out.println("Key/Value mappings: " + languages.entrySet()); ) )

Ausgabe

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Schlüssel: (1, 2, 3) Werte: (Java, Python, JavaScript) Schlüssel- / Wertzuordnungen: (1 = Java, 2 = Python, 3 = JavaScript )

Im obigen Beispiel haben wir eine Hashmap mit dem Namen Languages ​​erstellt. Hier greifen wir über die Hashmap auf die Schlüssel , Werte und Schlüssel / Wert- Zuordnungen zu.

Empfohlene Lektüre

  • Java HashMap get ()
  • Java Hashmap getOrDefault ()
  • Java HashMap keySet ()
  • Java HashMap-Werte ()
  • Java HashMap entrySet ()

3. Ändern Sie den HashMap-Wert

Wir können die replace()Methode verwenden, um den Wert zu ändern, der einem Schlüssel in einer Hashmap zugeordnet ist. Beispielsweise,

 import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("Original HashMap: " + languages); // change element with key 2 languages.replace(2, "C++"); System.out.println("HashMap using replace(): " + languages); ) )

Ausgabe

 Ursprüngliche HashMap: (1 = Java, 2 = Python, 3 = JavaScript) HashMap mit replace (): (1 = Java, 2 = C ++, 3 = JavaScript)

Im obigen Beispiel haben wir eine Hashmap mit dem Namen Languages ​​erstellt. Beachten Sie den Ausdruck,

 languages.replace(2, "C++");

Hier ändern wir den Wert, auf den sich Schlüssel 2 bezieht, mit dem neuen Wert C ++.

Die HashMapKlasse bietet auch einige Variationen der replace()Methode. Um mehr zu erfahren, besuchen Sie

  • Java HashMap replace ()
  • Java HashMap replaceAll ()

4. Entfernen Sie die HashMap-Elemente

Um Elemente aus einer Hashmap zu entfernen, können Sie die Methode remove () verwenden. Beispielsweise,

 import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // remove element associated with key 2 String value = languages.remove(2); System.out.println("Removed value: " + value); System.out.println("Updated HashMap: " + languages); ) )

Ausgabe

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Entfernter Wert: Python Aktualisierte HashMap: (1 = Java, 3 = JavaScript)

Hier nimmt die remove()Methode den Schlüssel als Parameter. Anschließend wird der dem Schlüssel zugeordnete Wert zurückgegeben und der Eintrag entfernt .

Wir können den Eintrag auch nur unter bestimmten Bedingungen entfernen. Beispielsweise,

 remove(2, "C++");

Hier entfernt die remove()Methode den Eintrag nur, wenn der Schlüssel 2 dem Wert C ++ zugeordnet ist . Da 2 nicht mit C ++ verknüpft ist , wird der Eintrag nicht entfernt.

Weitere Informationen finden Sie unter Java HashMap remove ().

Andere Methoden von HashMap

Methode Beschreibung
klar() Entfernt alle Zuordnungen aus dem HashMap
berechnen() berechnet einen neuen Wert für den angegebenen Schlüssel
computeIfAbsent () berechnet den Wert, wenn keine Zuordnung für den Schlüssel vorhanden ist
computeIfPresent () berechnet einen Wert für die Zuordnung, wenn der Schlüssel vorhanden ist
verschmelzen() führt das angegebene Mapping mit dem zusammen HashMap
Klon() macht die Kopie der HashMap
enthältKey () prüft, ob der angegebene Schlüssel in Hashmap vorhanden ist
enthältValue () prüft, ob Hashmapder angegebene Wert enthalten ist
Größe() Gibt die Anzahl der Elemente in zurück HashMap
ist leer() prüft ob das Hashmapleer ist

Durch eine HashMap iterieren

Um jeden Eintrag der Hashmap zu durchlaufen, können wir Java für jede Schleife verwenden. Wir können nur Schlüssel , nur Werte und Schlüssel / Wert-Zuordnung durchlaufen . Beispielsweise,

 import java.util.HashMap; import java.util.Map.Entry; class Main ( public static void main(String() args) ( // create a HashMap HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // iterate through keys only System.out.print("Keys: "); for (Integer key : languages.keySet()) ( System.out.print(key); System.out.print(", "); ) // iterate through values only System.out.print("Values: "); for (String value : languages.values()) ( System.out.print(value); System.out.print(", "); ) // iterate through key/value entries System.out.print("Entries: "); for (Entry entry : languages.entrySet()) ( System.out.print(entry); System.out.print(", "); ) ) )

Ausgabe

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Schlüssel: 1, 2, 3, Werte: Java, Python, JavaScript, Einträge: 1 = Java, 2 = Python, 3 = JavaScript,

Beachten Sie, dass wir das Map.Entryim obigen Beispiel verwendet haben. Es ist die verschachtelte Klasse der MapSchnittstelle, die eine Ansicht (Elemente) der Karte zurückgibt.

Wir müssen zuerst das java.util.Map.EntryPaket importieren , um diese Klasse verwenden zu können.

Diese verschachtelte Klasse gibt eine Ansicht (Elemente) der Karte zurück.

Erstellen von HashMap aus anderen Karten

In Java können wir auch eine Hashmap aus anderen Maps erstellen. Beispielsweise,

 import java.util.HashMap; import java.util.TreeMap; class Main ( public static void main(String() args) ( // create a treemap TreeMap evenNumbers = new TreeMap(); evenNumbers.put("Two", 2); evenNumbers.put("Four", 4); System.out.println("TreeMap: " + evenNumbers); // create hashmap from the treemap HashMap numbers = new HashMap(evenNumbers); numbers.put("Three", 3); System.out.println("HashMap: " + numbers); ) )

Ausgabe

 TreeMap: (Four=4, Two=2) HashMap: (Two=2, Three=3, Four=4)

In the above example, we have created a TreeMap named evenNumbers. Notice the expression,

 numbers = new HashMap(evenNumbers)

Here, we are creating a HashMap named numbers using the TreeMap. To learn more about treemap, visit Java TreeMap.

Note: While creating a hashmap, we can include optional parameters: capacity and load factor. For example,

 HashMap numbers = new HashMap(8, 0.6f);

Here,

  • 8 (capacity is 8) - This means it can store 8 entries.
  • 0.6f (load factor is 0.6) - This means whenever our hash table is filled by 60%, the entries are moved to a new hash table double the size of the original hash table.

Wenn die optionalen Parameter nicht verwendet wird , dann wird die Standard - Kapazität wird 16 und der Standard - Ladefaktor sein wird , 0,75 .

Interessante Beiträge...