Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Map.putIfAbsent()

Записывает значение, только если ключа ещё нет.

Доступно с: Java 8

Синтаксис

default V putIfAbsent(K key, V value)

Параметры

ПараметрТипОписание
keyKКлюч.
valueVЗначение, которое записывается, только если ключа нет.

Возвращаемое значение

VТекущее значение ключа или `null`, если пара была добавлена.

Примеры

Существующее значение не перезаписывается:

void main() {
    Map<String, String> users = new HashMap<>(Map.of("anna", "admin"));
    users.putIfAbsent("anna", "guest");
    users.putIfAbsent("oleg", "guest");
    IO.println(users.get("anna") + " " + users.get("oleg"));
}

Результат:

admin guest

Примечания

Значение вычисляется до вызова, даже если не понадобится. Когда создание значения дорогое (новый список, запрос к базе), лучше computeIfAbsent() — он вызывает функцию только при отсутствии ключа.

См. также

  • Map.put() — Записывает значение по ключу, заменяя прежнее.
  • Map.computeIfAbsent() — Возвращает значение по ключу, создавая его функцией, если ключа нет.
  • Map.getOrDefault() — Возвращает значение по ключу или запасное значение, если ключа нет.

Вопросы и ответы по теме

В учебнике

  • Словари: Map и HashMap — Словари Map в Java: пары ключ — значение, put и get, getOrDefault, подсчёт с merge, TreeMap и LinkedHashMap.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.