English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java Grund教程

Java Flow Control

Java Array

Java objektorientiert (I)

Java objektorientiert (II)

Java objektorientiert (III)

Java Ausnahmebehandlung

Java Liste (List)

Java Queue (Warteschlange)

Java Map-Kollektion

Java Set-Kollektion

Java Eingabe/Ausgabe (I/O)

Java Reader/Writer

Andere Themen von Java

Verwendung und Beispiel der Methode computeIfAbsent() von Java HashMap

Java HashMap Methoden

Die Methode computeIfAbsent() von Java HashMap berechnet einen neuen Wert und verknüpft ihn mit dem angegebenen Schlüssel, falls der Schlüssel nicht bereits mit einem Wert im Hash-Mapping verknüpft ist.

Die Syntax der Methode computeIfAbsent() lautet:

hashmap.computeIfAbsent(K key, Function remappingFunction)

computeIfAbsent()-Parameter

Die Methode computeIfAbsent() hat zwei Parameter:

  • key - mit dem berechneten Wert verknüpft

  • remappingFunction - für dieSchlüsselFunktion, um den neuen Wert zu berechnen

Beachtung:Die remapping function kann keine zwei Parameter akzeptieren.

computeIfAbsent() gibt den Wert zurück

  • zurückzugeben oder den alten Wert

  • Funktion, um den neuen Wert für die angegebene

Beachtung:Wenn das Ergebnis der remappingFunction null ist, wird die angegebeneSchlüsselzuordnung.

Beispiel1:Java HashMap computeIfAbsent()

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // HashMap erstellen
    HashMap<String, Integer> prices = new HashMap<>();
    // Eintrag in HashMap einfügen
    prices.put("Shoes", 200);
    prices.put("Bag", 300);
    prices.put("Pant", 150);
    System.out.println("HashMap: ") + preise);
    // Berechne den Wert des Hemdes
    int shirtPrice = prices.computeIfAbsent("Shirt", (key -> 280);
    System.out.println("Kosten des Hemdes: ") + shirtPrice);
    // aktualisierte HashMap ausgeben
    System.out.println("Aktualisierte HashMap: "); + preise);
  }
}

Ausgabeergebnis

HashMap: {Hose=150, Tasche=300, Shoes=200}
Kosten des Hemdes: 280
Aktualisierte HashMap: {Hose=150, Shirt=280, Tasche=300, Shoes=200}

Im obigen Beispiel haben wir eine HashMap namens prices erstellt. Beachte den Ausdruck

prices.computeIfAbsent("Shirt", (key -> 280)

hier,

  • key -> 280 - ist ein Lambda-Ausdruck. Er gibt den Wert280. Für mehr Informationen über Lambda-Ausdrücke besucheJava Lambda-Ausdrücke.

  • prices.computeIfAbsent() -  verknüpfe den neuen Wert, den die Lambda-Ausdrucksfunktion zurückgibt, mit der Zuordnung von Shirt. Dies ist möglich, weil Shirt noch nicht auf einen Wert in der hashmap verknüpft ist.

Beispiel2:Falls der Schlüssel bereits existiert,则为computeIfAbsent()

import java.util.HashMap;
class Main {
  public static void main(String[] args) {
    // HashMap erstellen
    HashMap<String, Integer> prices = new HashMap<>();
    // Eintrag in HashMap einfügen
    prices.put("Shoes", 180);
    prices.put("Bag", 300);
    prices.put("Pant", 150);
    System.out.println("HashMap: ") + preise);
    //die Zuordnung von Shoes existiert bereits
    //nicht den neuen Wert für Shoes berechnen
    int shoePrice = prices.computeIfAbsent("Shoes", (key) -> 280);
    System.out.println("Schuhpreis: ") + shoePrice);
    //Aktualisierte HashMap ausgeben
    System.out.println("Aktualisierte HashMap: "); + preise);
  }
}

Ausgabeergebnis

HashMap: {Hose=150, Tasche=300, Shoes=180}
Schuhpreis: 180
Aktualisierte HashMap: {Hose=150, Tasche=300, Shoes=180}

In den obigen Beispielen ist die Zuordnung von Shoes bereits im Hash-Mapping vorhanden. Daher wird die computeIfAbsent()-Methode den neuen Wert von Shoes nicht berechnen.

Empfohlene Lektüre

Java HashMap Methoden