Encodera

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

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

Справочник Java

Map.getOrDefault()

Возвращает значение по ключу или запасное значение, если ключа нет.

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

Синтаксис

default V getOrDefault(Object key, V defaultValue)

Параметры

ПараметрТипОписание
keyObjectИскомый ключ.
defaultValueVЧто вернуть, если ключа нет.

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

VЗначение ключа или `defaultValue`.

Примеры

Настройки со значениями по умолчанию:

void main() {
    Map<String, String> config = Map.of("theme", "dark");
    IO.println(config.getOrDefault("theme", "light"));
    IO.println(config.getOrDefault("lang", "en"));
}

Результат:

dark
en

Счётчик символов:

void main() {
    Map<Character, Integer> freq = new TreeMap<>();
    for (char c : "banana".toCharArray()) {
        freq.put(c, freq.getOrDefault(c, 0) + 1);
    }
    IO.println(freq);
}

Результат:

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

Примечания

Запасное значение не записывается в словарь. Если оно должно появиться в словаре, используйте putIfAbsent() или computeIfAbsent(). Счётчик короче пишется через merge(key, 1, Integer::sum).

См. также

  • Map.get() — Возвращает значение по ключу или `null`.
  • Map.merge() — Добавляет значение по ключу или объединяет его с уже существующим.
  • Map.computeIfAbsent() — Возвращает значение по ключу, создавая его функцией, если ключа нет.

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

В учебнике

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

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

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