Middle
Mi a különbség a put és a compute módszerek között?
sobes.tech MI
Válasz az MI-től
put(key, value) egyszerűen hozzárendeli a value-t a key-hez, felülírva a meglévő értéket, ha a kulcs már létezik.
compute(key, remappingFunction) új értéket számít ki a key-hez a megadott remappingFunction segítségével. A funkció megkapja az aktuális kulcsot és annak jelenlegi értékét (vagy null, ha a kulcs nem létezik), és egy új értéket ad vissza, amelyet a kulcshoz társítanak. Ha a funkció null-t ad vissza, a bejegyzés törlésre kerül.
Fő különbségek:
- Hiányzó kulcsok kezelése:
putúj értéket ad hozzá.computehasználhatja a korábbi értéket (mégnull-t is) az új kiszámításához. - Előző értéktől való függés:
putaz értéket függetlenül az előzőtől állítja be.computekifejezetten az előző értéket használja a számítási funkcióban. - Bejegyzések törlése:
put(key, null)törli a bejegyzést.computetörli a bejegyzést, ha a számítási funkciónull-t ad vissza.
Használati példa:
// put használata
Map<String, Integer> countsPut = new HashMap<>();
countsPut.put("apple", 1);
countsPut.put("apple", 2); // 1-et felülírja 2-re
// Számláló növelése compute segítségével
Map<String, Integer> countsCompute = new HashMap<>();
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana 1 lesz
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana 2 lesz
countsCompute.compute("cherry", (key, value) -> null); // törli a cherry-t, ha létezett