Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java HashMap meistern: Operationen, Beispiele und Best Practices

Java HashMap meistern

Erkunden Sie die Java HashMap-Klasse – ihre Kernfunktionen, gängige Operationen und praktische Beispiele – damit Sie sie sicher in realen Anwendungen einsetzen können.

Die HashMap-Klasse, Teil von Javas Collections Framework, implementiert eine Hashtabelle, die Daten in Schlüssel/Wert-Paaren speichert. Jeder Schlüssel ist einzigartig und fungiert als Identifikator für seinen assoziierten Wert. Die Klasse implementiert das Map-Interface und bietet eine vielseitige API für Datenmanipulation.

Java HashMap meistern: Operationen, Beispiele und Best Practices

HashMap erstellen

Beginnen Sie mit dem Import des java.util.HashMap-Pakets:

import java.util.HashMap;

Dann instanziieren Sie die Map. Sie können generische Schlüssel- und Werttypen K und V angeben oder auf Type Inference vertrauen:

HashMap<K, V> numbers = new HashMap<>();

Beispiel mit konkreten Typen:

HashMap<String, Integer> numbers = new HashMap<>();

Beispiel 1: Grundlegende HashMap-Erstellung

import java.util.HashMap; class Main { public static void main(String[] args) { HashMap<String, Integer> languages = new 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}

Kernoperationen auf HashMap

Die HashMap-Klasse bietet einen reichen Methodensatz. Unten decken wir die häufigsten ab:


1. Elemente hinzufügen

Verwenden Sie put(), um ein Schlüssel/Wert-Paar einzufügen. Falls der Schlüssel bereits existiert, wird der Wert ersetzt.

import java.util.HashMap; class Main { public static void main(String[] args) { HashMap<String, Integer> numbers = new HashMap<>(); System.out.println("Initial HashMap: " + numbers); numbers.put("One", 1); numbers.put("Two", 2); numbers.put("Three", 3); System.out.println("HashMap after put(): " + numbers); } }

Ausgabe

Initial HashMap: {} HashMap after put(): {One=1, Two=2, Three=3}

Schlüssel: String, Wert: Integer in diesem Beispiel.


2. Auf Elemente zugreifen

Rufen Sie einen Wert mit get(key) ab. Die Methode gibt null zurück, falls der Schlüssel abwesend ist.

import java.util.HashMap; class Main { public static void main(String[] args) { HashMap<Integer, String> languages = new HashMap<>(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); String value = languages.get(1); System.out.println("Value at key 1: " + value); } }

Ausgabe

HashMap: {1=Java, 2=Python, 3=JavaScript} Value at key 1: Java

Sie können auch den kompletten Keyset, Value-Collection oder Entry-Set via keySet(), values() und entrySet() erhalten:

import java.util.HashMap; class Main { public static void main(String[] args) { HashMap<Integer, String> languages = new HashMap<>(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); System.out.println("Keys: " + languages.keySet()); System.out.println("Values: " + languages.values()); System.out.println("Entries: " + languages.entrySet()); } }

Ausgabe

HashMap: {1=Java, 2=Python, 3=JavaScript} Keys: [1, 2, 3] Values: [Java, Python, JavaScript] Entries: [1=Java, 2=Python, 3=JavaScript]

3. Werte aktualisieren

Die replace(key, newValue)-Methode tauscht den bestehenden Wert für den gegebenen Schlüssel aus. Sie gibt den alten Wert oder null zurück, falls der Schlüssel abwesend war.

import java.util.HashMap; class Main { public static void main(String[] args) { HashMap<Integer, String> languages = new HashMap<>(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("Original HashMap: " + languages); languages.replace(2, "C++"); System.out.println("After replace(): " + languages); } }

Ausgabe

Original HashMap: {1=Java, 2=Python, 3=JavaScript} After replace(): {1=Java, 2=C++, 3=JavaScript}

4. Elemente entfernen

Löschen Sie ein Mapping mit remove(key), das den entfernten Wert zurückgibt. Für bedingtes Entfernen nutzen Sie remove(key, value), das nur entfernt, falls das aktuelle Mapping den angegebenen Wert matcht.

import java.util.HashMap; class Main { public static void main(String[] args) { HashMap<Integer, String> languages = new HashMap<>(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); String removed = languages.remove(2); System.out.println("Removed value: " + removed); System.out.println("Updated HashMap: " + languages); } }

Ausgabe

HashMap: {1=Java, 2=Python, 3=JavaScript} Removed value: Python Updated HashMap: {1=Java, 3=JavaScript}

Zusätzliche HashMap-Methoden

MethodeBeschreibung
clear()Entfernt alle Mappings
compute()Berechnet neuen Wert für Schlüssel
computeIfAbsent()Berechnet Wert nur falls Schlüssel fehlt
computeIfPresent()Berechnet Wert nur falls Schlüssel existiert
merge()Führt neues Mapping mit bestehendem zusammen
clone()Erstellt flache Kopie
containsKey()Prüft auf spezifischen Schlüssel
containsValue()Prüft auf spezifischen Wert
size()Anzahl Schlüssel/Wert-Paare
isEmpty()Ob Map leer ist

Durch eine HashMap iterieren

Nutzen Sie eine for-each-Schleife zum Durchlaufen von Keys, Values oder Entries. Importieren Sie java.util.Map.Entry für Entry-Iteration.

import java.util.HashMap; import java.util.Map.Entry; class Main { public static void main(String[] args) { HashMap<Integer, String> languages = new HashMap<>(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); System.out.print("Keys: "); for (Integer key : languages.keySet()) { System.out.print(key + ", "); } System.out.print("\nValues: "); for (String value : languages.values()) { System.out.print(value + ", "); } System.out.print("\nEntries: "); for (Entry<Integer, String> entry : languages.entrySet()) { System.out.print(entry + ", "); } } }

Ausgabe

HashMap: {1=Java, 2=Python, 3=JavaScript} Keys: 1, 2, 3, Values: Java, Python, JavaScript, Entries: 1=Java, 2=Python, 3=JavaScript,

HashMap aus einer anderen Map erstellen

Instanziieren Sie eine HashMap mit dem Inhalt einer existierenden Map:

import java.util.HashMap; import java.util.TreeMap; class Main { public static void main(String[] args) { TreeMap<String, Integer> evenNumbers = new TreeMap<>(); evenNumbers.put("Two", 2); evenNumbers.put("Four", 4); System.out.println("TreeMap: " + evenNumbers); HashMap<String, Integer> 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}

Optionale Konstruktorparameter erlauben das Setzen der initialen Kapazität und des Load Factors:

HashMap<K, V> numbers = new HashMap<>(8, 0.6f);

Defaults sind capacity = 16 und load factor = 0.75.

Für tiefere Einblicke konsultieren Sie die offizielle Java-Dokumentation oder autoritative Ressourcen wie "Effective Java" von Joshua Bloch.


Java

  1. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  2. Java Kommentare: Typen, Verwendung und Best Practices
  3. Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
  4. Java Strings meistern: Erstellung, Methoden und Best Practices
  5. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  6. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  7. Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
  8. Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
  9. Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität
  10. Java Vector verstehen: Verwendung, Funktionen und Vergleich mit ArrayList