Middle
181
Фарқи байни усулҳои put ва compute чист?
Ҷавоб аз AI
sobes.tech AI
put(key, value) од simple асоциира 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 ако постоеше