Java HashMap merge()-Methode
Die merge()-Methode prüft zunächst, ob der angegebene Schlüssel existiert. Wenn er nicht existiert, fügt sie das Schlüssel-Wert-Paar zur hashMap hinzu.
Die Syntax der merge()-Methode ist:
hashmap.merge(key, value, remappingFunction)
Hinweis:hashmap ist ein Objekt der Klasse HashMap.
Details zu den Parametern:
- key - der Schlüssel
- value - der Wert
- remappingFunction - die Remapping-Funktion, die verwendet wird, um den Wert neu zu berechnen
Rückgabewert
Wenn der zum Schlüssel gehörende Wert nicht existiert, wird der Wert zurückgegeben; wenn er existiert, wird der über remappingFunction neu berechnete Wert zurückgegeben.
Beispiel
Das folgende Beispiel zeigt die Verwendung der merge()-Methode:
Beispiel
class Main {
public static void main(String[] args) {
// Eine HashMap erstellen
HashMap<String, Integer> prices = new HashMap<>();
// Zuordnungen in die HashMap einfügen
prices.put("Shoes", 200);
prices.put("Bag", 300);
prices.put("Pant", 150);
System.out.println("HashMap: " + prices);
int returnedValue = prices.merge("Shirt", 100, (oldValue, newValue) -> oldValue + newValue);
System.out.println("Price of Shirt: " + returnedValue);
// Aktualisierte HashMap ausgeben
System.out.println("Aktualisierte HashMap: " + prices);
}
}
Das Ausführen des obigen Programms erzeugt die folgende Ausgabe:
HashMap: {Pant=150, Bag=300, Shoes=200}
Price of Shirt: 100
Updated HashMap: {Pant=150, Shirt=100, Bag=300, Shoes=200}
Im obigen Beispiel haben wir eine HashMap namens prices erstellt.
Beachten Sie den Ausdruck:
prices.merge("Shirt", 100, (oldValue, newValue) -> oldValue + newValue)Im Code haben wir einen anonymen Funktions-Lambda-Ausdruck (oldValue, newValue) -> oldValue + newValue) als die Remapping-Funktion verwendet.
Da der Schlüssel Shirt nicht in prices enthalten ist, fügt die merge()-Methode die Zuordnung Shirt=100 in prices ein, und das Ausführungsergebnis der Remapping-Funktion wird ignoriert.
Um mehr über Lambda-Ausdrücke zu erfahren, besuchen SieJava-Lambda-Ausdrücke。
Die HashMap merge()-Methode fügt einen Zuordnungseintrag mit einem doppelten Schlüssel ein:
Beispiel
class Main {
public static void main(String[] args) {
// Eine HashMap erstellen
HashMap<String, String> countries = new HashMap<>();
// Mapping-Einträge in die HashMap einfügen
countries.put("Washington", "America");
countries.put("Canberra", "Australia");
countries.put("Madrid", "Spain");
System.out.println("HashMap: " + countries);
// Die Zuordnung mit dem Schlüssel Washington zusammenführen
String returnedValue = countries.merge("Washington", "USA", (oldValue, newValue) -> oldValue + "/" + newValue);
System.out.println("Washington: " + returnedValue);
// Aktualisierte HashMap ausgeben
System.out.println("Aktualisierte HashMap: " + countries);
}
}
Das Ausführen des obigen Programms erzeugt die folgende Ausgabe:
HashMap: {Madrid=Spain, Canberra=Australia, Washington=America}
Washington: America/USA
Updated HashMap: {Madrid=Spain, Canberra=Australia, Washington=America/USA},
Im obigen Beispiel haben wir eine HashMap namens countries erstellt.
Beachten Sie den Ausdruck:
countries.merge("Washington", "USA", (oldValue, newValue) -> oldValue + "/" + newValue)
Hier haben wir den Lambda-Ausdruck(oldValue, newValue) -> oldValue + "/" + newValue)als Remapping-Funktion verwendet.
Da der Schlüssel washington bereits in countries existiert, wird der alte Wert durch den von der Remapping-Funktion zurückgegebenen Wert ersetzt. Daher enthält die Zuordnung für Washington America/USA.
Weitere Erweiterungen
Java HashMap