Метод getOrDefault
Метод getOrDefault класса HashMap возвращает
значение, связанное с указанным ключом. Если такого ключа
в отображении нет, метод возвращает значение по умолчанию.
В первый параметр мы передаем ключ, значение которого хотим
получить, во второй - значение по умолчанию, которое вернется,
если ключ отсутствует. При этом исходное отображение не изменяется:
новые пары в него не добавляются.
Синтаксис
hashMap.getOrDefault(key, defaultValue)
Пример
Давайте получим значение по существующему ключу
"a" и по отсутствующему ключу "z":
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);
int res1 = map.getOrDefault("a", 0);
int res2 = map.getOrDefault("z", 0);
System.out.println(res1);
System.out.println(res2);
}
}
Результат выполнения кода:
1
0
Пример
Давайте вернем значение по умолчанию в виде строки для отсутствующего ключа:
import java.util.HashMap;
public class Main
{
public static void main(String[] args)
{
HashMap<String, String> map = new HashMap<>();
map.put("a", "abcde");
map.put("b", "12345");
String res1 = map.getOrDefault("b", "default");
String res2 = map.getOrDefault("z", "default");
System.out.println(res1);
System.out.println(res2);
}
}
Результат выполнения кода:
"12345"
"default"
Пример
Давайте убедимся, что метод getOrDefault
не добавляет новую пару в отображение:
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);
int res = map.getOrDefault("z", 0);
System.out.println(res);
System.out.println(map.containsKey("z"));
System.out.println(map.size());
}
}
Результат выполнения кода:
0
false
2
Смотрите также
-
метод
get,
который возвращает значение по ключу -
метод
putIfAbsent,
который добавляет пару, если ключа еще нет -
метод
containsKey,
который проверяет наличие ключа -
метод
computeIfAbsent,
который вычисляет значение для отсутствующего ключа