Middle
Was ist der Unterschied zwischen den Methoden put und compute?
sobes.tech KI
Antwort von AI
put(key, value) ordnet einfach value key zu, wobei der vorhandene Wert ersetzt wird, falls der Schlüssel bereits vorhanden ist.
compute(key, remappingFunction) berechnet einen neuen Wert für key unter Verwendung der bereitgestellten Funktion remappingFunction. Die Funktion nimmt den aktuellen Schlüssel und seinen aktuellen Wert (oder null, wenn der Schlüssel nicht existiert) und gibt einen neuen Wert zurück, der mit dem Schlüssel verknüpft wird. Wenn die Funktion null zurückgibt, wird der Eintrag gelöscht.
Hauptunterschiede:
- Umgang mit fehlenden Schlüsseln:
putfügt einen neuen Wert ein.computekann den vorherigen Wert (auchnull) verwenden, um einen neuen zu berechnen. - Abhängigkeit vom vorherigen Wert:
putsetzt den Wert unabhängig vom vorherigen.computeverwendet explizit den vorherigen Wert in der Berechnungsfunktion. - Löschen von Einträgen:
put(key, null)löscht den Eintrag.computelöscht den Eintrag, wenn die Berechnungsfunktionnullzurückgibt.
Anwendungsbeispiel:
// Verwendung von put
Map<String, Integer> countsPut = new HashMap<>();
countsPut.put("apple", 1);
countsPut.put("apple", 2); // Ersetzt 1 durch 2
// Verwendung von compute zum Inkrementieren eines Zählers
Map<String, Integer> countsCompute = new HashMap<>();
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana wird 1
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana wird 2
countsCompute.compute("cherry", (key, value) -> null); // Entfernt cherry, falls vorhanden