Map.getOrDefault()
Возвращает значение по ключу или запасное значение, если ключа нет.
Доступно с: Java 8
Синтаксис
default V getOrDefault(Object key, V defaultValue)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| key | Object | Искомый ключ. |
| defaultValue | V | Что вернуть, если ключа нет. |
Возвращаемое значение
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.