Sobes.tech
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: put yangi qiymat qo‘shadi. compute avvalgi qiymatdan (hatto null) foydalanishi mumkin va yangi qiymat hisoblaydi.
  • Oldingi qiymatdan bog‘liqlik: put qiymatni oldingi qiymatdan mustaqil ravishda o‘rnatadi. compute aniq ravishda oldingi qiymatdan foydalanadi.
  • Yozuvlarni o‘chirish: put(key, null) yozuvni o‘chiradi. compute agar hisoblash funktsiyasi null qaytaradigan 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