为什么System.out.println(map.put(1,“ test”))打印空值?

时间:2019-10-10 10:44:34

标签: java hashmap

class Test3 {  
    public static void main(String args[]){  
        Map<Integer, String> aa = new HashMap();
        System.out.println(aa.put(1, "test"));
    }  

}

每当我执行此语句时,它就会输出空值。我想知道为什么它输出空值。发生什么事了?

2 个答案:

答案 0 :(得分:9)

来自Javadoc of Map.put

V put(K key,
  V value)
     

...

     

返回:与键关联的先前值;如果没有键的映射关系,则为null。

在调用put之前该映射为空,因此“没有键的映射”,因此返回null

答案 1 :(得分:2)

实现看跌期权的方法如下

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

如果该映射先前包含该键的映射,则替换旧值。否则将返回null,因为没有映射。