Pascal4eg / Java

 Java | Фишки и трюки

Метод putIfAbsent() интерфейса Map

public class PutIfAbsent {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        System.out.println("prev value - " + map.putIfAbsent("hello", null)); // prev value - null
        System.out.println("prev value - " + map.putIfAbsent("hello", "world")); // prev value - null
        System.out.println("prev value - " + map.putIfAbsent("hello", "мир")); // prev value - world
        System.out.println(map); // {hello=world}
    }
}

Если указанный ключ еще не связан со значением (или сопоставлен со значением null), он связывает его с заданным значением и возвращает значение null, в противном случае возвращается текущее значение.

default V putIfAbsent(K key, V value) {
    V v = get(key);
    if (v == null) {
        v = put(key, value);
    }
    return v;
}

Параметры:
key – ключ, с которым должно быть связано указанное значение. value – значение, которое должно быть связано с указанным ключом.

Возврат:
предыдущее значение, связанное с указанным ключом, или значение null, если для ключа не было сопоставления. Возврат null может также указывать на то, что мапа ранее ассоциировала с ключом значение null, если реализация поддерживает значения null.