Java HashMap computeIfAbsent()-Methode

Java HashMap Java HashMap

Die computeIfAbsent()-Methode berechnet den Wert für den angegebenen Schlüssel in der hashMap neu; existiert der Schlüssel nicht, wird er zur hashMap hinzugefügt.

Die Syntax von computeIfAbsent() ist:

hashmap.computeIfAbsent(K key, Function remappingFunction)

Hinweis:hashmap ist ein Objekt der Klasse HashMap.

Parameterdetails:

  • key - der Schlüssel
  • remappingFunction - die Remapping-Funktion, mit der der Wert neu berechnet wird

Rückgabewert

Wenn der dem Schlüssel entsprechende Wert nicht existiert, wird der von remappingFunction neu berechnete Wert als Wert für diesen Schlüssel übernommen; andernfalls wird der Wert zurückgegeben.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der computeIfAbsent()-Methode:

Beispiel

import java.util.HashMap;

class Main {
    public static void main(String[] args) {
        // Eine HashMap erstellen
        HashMap<String, Integer> prices = new HashMap<>();

        // Mapping-Einträge zur HashMap hinzufügen
        prices.put("Shoes", 200);
        prices.put("Bag", 300);
        prices.put("Pant", 150);
        System.out.println("HashMap: " + prices);

        // Wert für Shirt berechnen
        int shirtPrice = prices.computeIfAbsent("Shirt", key -> 280);
        System.out.println("Price of Shirt: " + shirtPrice);

        // Aktualisierte HashMap ausgeben
        System.out.println("Aktualisierte HashMap: " + prices);
    }
}

Die Ausgabe des obigen Programms ist:

HashMap: {Pant=150, Bag=300, Shoes=200}
Price of Shirt: 280
Updated HashMap: {Pant=150, Shirt=280, Bag=300, Shoes=200}

Im obigen Beispiel haben wir eine HashMap namens prices erstellt.

Beachten Sie den Ausdruck:

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

Im Code haben wir eine anonyme Funktion verwendet, einen Lambda-Ausdruck.key-> 280Als Remapping-Funktion verbindet prices.computeIfAbsent() den von dem Lambda-Ausdruck zurückgegebenen neuen Wert mit Shirt.

Da Shirt in der HashMap nicht existiert, wird ein neues Schlüssel/Wert-Paar hinzugefügt.

Um mehr über Lambda-Ausdrücke zu erfahren, besuchen SieJava-Lambda-Ausdrücke。

Fall, wenn der Schlüssel bereits existiert:

Beispiel

import java.util.HashMap;

class Main {
    public static void main(String[] args) {
        // Eine HashMap erstellen
        HashMap<String, Integer> prices = new HashMap<>();

        // Mapping-Beziehungen zur HashMap hinzufügen
        prices.put("Shoes", 180);
        prices.put("Bag", 300);
        prices.put("Pant", 150);
        System.out.println("HashMap: " + prices);

        // Die Zuordnung für Shoes ist bereits vorhanden
        // Für Shoes wird kein neuer Wert berechnet
        int shoePrice = prices.computeIfAbsent("Shoes", (key) -> 280);
        System.out.println("Price of Shoes: " + shoePrice);

        // Aktualisierte HashMap ausgeben
        System.out.println("Aktualisierte HashMap: " + prices);
    }
}

Die Ausgabe des obigen Programms ist:

HashMap: {Pant=150, Bag=300, Shoes=180}
Price of Shoes: 180
Updated HashMap: {Pant=150, Bag=300, Shoes=180}

Im obigen Beispiel ist die Zuordnung für Shoes bereits in der HashMap vorhanden, sodass kein neuer Wert für Shoes berechnet wird.

Java HashMap Java HashMap

Andere Erweiterungen