Sobes.tech
Middle

put жана compute ыкмаларынын айырмасы эмнеде?

sobes.tech AI

AIден жооп

put(key, value) жөнөкөй түрдө value-ну key менен байланыштырат, эгерде ачкыч алда бар болсо, учурдагы маанини алмаштырат.

compute(key, remappingFunction) key үчүн жаңы маанини эсептейт, берилген remappingFunction функциясын колдонуп. Функция учурдагы ачкычты жана анын учурдагы маанисин (же null, эгер ачкыч жок болсо) кабыл алат жана жаңы маанини кайтарат, ал ачкыч менен байланыштырылат. Эгер функция null кайтарса, жазуу өчүрүлөт.

Негизги айырмачылыктар:

  • Жок ачкычтарды иштетүү: put жаңы маанини кошот. compute мурдагы маанини (даже null) колдонуп, жаңы маанини эсептейт.
  • Мурдагы мааниге көз караш: put маанини мурдагыдан көз карандысыз орнотуп койот. compute так мурдагы маанини колдонуп, аны эсептөө функциясында пайдаланады.
  • Жазуулардын өчүрүлүшү: put(key, null) жазууну өчүрөт. compute эгер эсептөө функциясы null кайтарса, жазууну өчүрөт.

Колдонуу мисалы:

// `put` колдонуу
Map<String, Integer> countsPut = new HashMap<>();
countsPut.put("apple", 1);
countsPut.put("apple", 2); // 1-ди 2-ге алмаштырат

// эсептегичти көбөйтүү үчүн compute колдонуу
Map<String, Integer> countsCompute = new HashMap<>();
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana 1 болот
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana 2 болот
countsCompute.compute("cherry", (key, value) -> null); // эгер бар болсо, cherry өчүрөт