繁体   English   中英

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

[英]Why does System.out.println(map.put(1,“test”)) print null value?

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

}

每当我执行此语句时,它都会打印 null 值。 我想知道为什么它打印 null 值。 怎么了?

来自Map.put的 Javadoc

 V put(K key, V value)

...

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

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

put 的实现如下所示

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

如果 map 之前包含密钥的映射,则旧值将被替换。 否则 null 将返回,因为没有映射。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM