РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
384 of 1163 menu

Метод compute

Метод compute вычисляет новое значение для указанного ключа и сохраняет его в HashMap. В первый параметр мы передаем ключ, для которого нужно вычислить значение. Второй параметр - это функция remappingFunction, которая принимает текущее значение (или null, если ключ отсутствует) и возвращает новое значение. Если функция возвращает null, то запись удаляется из HashMap. Метод возвращает новое значение, связанное с ключом, или null, если значение отсутствует.

Синтаксис

map.compute(key, remappingFunction)

Пример

Давайте вычислим новое значение для ключа "a", увеличив текущее значение на 10:

import java.util.HashMap; public class Main { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<>(); map.put("a", 5); map.put("b", 10); Integer res = map.compute("a", (key, value) -> value + 10); System.out.println(res); System.out.println(map); } }

Результат выполнения кода:

15 {a=15, b=10}

Пример

Давайте вычислим значение для ключа, которого нет в HashMap. В этом случае текущее значение будет null:

import java.util.HashMap; public class Main { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<>(); map.put("a", 5); map.put("b", 10); Integer res = map.compute("c", (key, value) -> value == null ? 1 : value + 1); System.out.println(res); System.out.println(map); } }

Результат выполнения кода:

1 {a=5, b=10, c=1}

Пример

Если функция возвращает null, то запись удаляется из HashMap:

import java.util.HashMap; public class Main { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<>(); map.put("a", 5); map.put("b", 10); Integer res = map.compute("a", (key, value) -> null); System.out.println(res); System.out.println(map); } }

Результат выполнения кода:

null {b=10}

Смотрите также

  • метод computeIfAbsent,
    который вычисляет значение, если ключ отсутствует
  • метод computeIfPresent,
    который вычисляет значение, если ключ присутствует
  • метод put,
    который добавляет пару ключ-значение
  • метод merge,
    который объединяет значение с существующим
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить