Middle
Put va compute metodlari o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
put(key, value) oddiy ravishda value ni key bilan bog‘laydi, agar kalit allaqachon mavjud bo‘lsa, mavjud qiymatni o‘zgartiradi.
compute(key, remappingFunction) taqdim etilgan remappingFunction funktsiyasidan foydalanib, key uchun yangi qiymat hisoblaydi. Funktsiya joriy kalit va uning joriy qiymatini (yoki null agar kalit mavjud bo‘lmasa) oladi va kalit bilan bog‘langan yangi qiymatni qaytaradi. Agar funktsiya null qaytaradigan bo‘lsa, yozuv o‘chiriladi.
Asosiy farqlar:
- Mavjud bo‘lmagan kalitlarni boshqarish:
putyangi qiymat qo‘shadi.computeavvalgi qiymatdan (hattonull) foydalanishi mumkin va yangi qiymat hisoblaydi. - Oldingi qiymatdan bog‘liqlik:
putqiymatni oldingi qiymatdan mustaqil ravishda o‘rnatadi.computeaniq ravishda oldingi qiymatdan foydalanadi. - Yozuvlarni o‘chirish:
put(key, null)yozuvni o‘chiradi.computeagar hisoblash funktsiyasinullqaytaradigan bo‘lsa, yozuvni o‘chiradi.
Foydalanish misoli:
// put dan foydalanish
Map<String, Integer> countsPut = new HashMap<>();
countsPut.put("apple", 1);
countsPut.put("apple", 2); // 1 ni 2 ga o‘zgartiradi
// hisoblagichni oshirish uchun compute dan foydalanish
Map<String, Integer> countsCompute = new HashMap<>();
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana 1 bo‘ladi
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana 2 bo‘ladi
countsCompute.compute("cherry", (key, value) -> null); // agar mavjud bo‘lsa, cherry o‘chiradi