今天我读了一本书: -
“HashMap允许集合中有一个空键和多个空值。”
HashMap<Object,Object> ih=new HashMap<Object,Object>();
Object o1=null;
Integer o2=null;
ih.put(o1,null);
ih.put(new Integer(2),null);
ih.put(o2,new Integer(3));
此示例在地图中放置了两个空对象引用。
但以下示例已成功编译并运行...
我无法找出原因?
答案 0 :(得分:1)
这本书可能意味着什么:
HashMap<X, Y>
的可能键中,可以有一个空键; 因此,您的代码工作是完全正常的。只是这本书的文字非常令人困惑。
但当然,这完全取决于Map
的实施;其中一些(例如ConcurrentHashMap
)将不允许使用null键或值。
答案 1 :(得分:1)
&#34; HashMap允许一个空键和多个空值 。收集&#34;
如果您继续添加null
密钥,则只允许一个null
密钥,它将覆盖以前的值。实际上,HashMap
中的任何键都是如此。
底线是 - HashMap allows only one key
e.g。如果你打印Hashmap
的大小,它将是2。
System.out.println("size:: "+ih.size());