English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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)
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.
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.
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.
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
HashMap compute() - Den Wert des angegebenen Schlüssels berechnen
HashMap computeIfPresent() - Wenn der angegebene Schlüssel bereits einen Wert zugeordnet ist, diesen Wert berechnen
Java HashMap merge() - Dasselbe Aufgaben wie compute() ausführen