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 өчүрөт