Метод 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,
который проверяет наличие ключа