Sobes.tech
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 ако постоеше