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

Метод putIfAbsent

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

Синтаксис

map.putIfAbsent(key, value)

Пример

Давайте добавим новую пару в мапу, где ключа 1 еще нет:

import java.util.HashMap; public class Main { public static void main(String[] args) { HashMap<Integer, String> map = new HashMap<>(); map.put(1, "abcde"); String res = map.putIfAbsent(2, "12345"); System.out.println(res); System.out.println(map); } }

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

null {1=abcde, 2=12345}

Пример

А теперь попробуем добавить значение по ключу, который уже существует в мапе:

import java.util.HashMap; public class Main { public static void main(String[] args) { HashMap<Integer, String> map = new HashMap<>(); map.put(1, "abcde"); String res = map.putIfAbsent(1, "12345"); System.out.println(res); System.out.println(map); } }

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

abcde {1=abcde}

Пример

Метод также сработает, если ключ существует, но его значение равно null:

import java.util.HashMap; public class Main { public static void main(String[] args) { HashMap<Integer, String> map = new HashMap<>(); map.put(1, null); String res = map.putIfAbsent(1, "abcde"); System.out.println(res); System.out.println(map); } }

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

null {1=abcde}

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

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