簡體   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