Почему System.out.println (map.put (1, "test")) печатает нулевое значение? - PullRequest
0 голосов
/ 10 октября 2019
class Test3 {  
    public static void main(String args[]){  
        Map<Integer, String> aa = new HashMap();
        System.out.println(aa.put(1, "test"));
    }  

}

всякий раз, когда я выполняю этот оператор, он печатает нулевое значение. Я хочу знать, почему он печатает нулевое значение. Что происходит?

Ответы [ 2 ]

9 голосов
/ 10 октября 2019

Из Javadoc Map.put:

V put(K key,
  V value)

...

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

Карта является пустой до вызова put, поэтому "не было сопоставления для ключа", поэтому возвращается null.

2 голосов
/ 10 октября 2019

реализация put выглядит примерно так:

@Override
    public V put(K key, V value) {
        return putImpl(key, value);
    }

Если карта ранее содержала отображение для ключа, старое значение заменяется. иначе null вернется, потому что нет сопоставления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...