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

Метод computeIfPresent

Метод computeIfPresent изменяет значение элемента коллекции HashMap, но только при условии, что указанный ключ уже присутствует в этой коллекции. Если ключа нет, метод ничего не делает и возвращает null. Первым параметром метод принимает ключ, значение которого нужно изменить, а вторым - функцию пересчета, которая принимает текущее значение и возвращает новое. Если функция пересчета вернет null, то элемент будет удален из коллекции.

Синтаксис

map.computeIfPresent(key, remappingFunction)

Пример

Давайте изменим значение элемента с ключом "a", умножив его на 2:

import java.util.HashMap; public class Main { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); map.computeIfPresent("a", (key, value) -> value * 2); System.out.println(map); } }

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

{a=2, b=2, c=3}

Пример

Давайте попробуем изменить значение элемента с ключом "d", которого нет в коллекции:

import java.util.HashMap; public class Main { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); map.computeIfPresent("d", (key, value) -> value * 2); System.out.println(map); } }

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

{a=1, b=2, c=3}

Пример

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

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

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

{a=1, c=3}

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

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