为了进行实验,我在一个 Hashmap
实例中添加了多个 null
键。它并没有报错。这样做有什么好处吗?
代码如下:
Map hmap = new HashMap();
hmap.put("sushil","sushil11" );
hmap.put(null,null);
hmap.put(null,"king");
hmap.put(null,"nagasaki");
hmap.put(null,null);
地图中有多少个键?
我猜你并没有添加多个null
键,而是多次覆盖了同一个null
键。
一个普通的哈希映射表会有唯一的键,因此你会不断地覆盖 null 键的条目。你不会有多个相同的键(这需要 MultiMap 或类似的东西)。
它用于获取switch:case:default的行为。
例如:
问题定义:计算机科学系大楼内的咖啡店。他们向计算机科学系学生提供1美元的咖啡,向IT系学生提供1.25美元的咖啡,向其他人提供1.50美元的咖啡。
然后映射如下:
键 -> 值
IT -> 1.25
CS -> 1.00
null -> 1.50
if(map.containsKey(dept))
price = map.get(dept);
else
price = map.get(null);
P.S. - 如果有这个词,我并不是“部门主义者”。 :)
这个问题涉及到在HashMap中拥有多个键,但是这是不可能的。
如果你一遍又一遍地传递null值,那么旧值只会被替换。
参考:
HashMap允许多个null值,但只允许一个null键。 如果您编写多个null键,如下所示,则null将被覆盖,并且您将获得最终被覆盖的结果。即"world"
Map<String, String> valueMap = new HashMap<>();
valueMap.put(null, "hello");
valueMap.put(null, "world");
System.out.println(valueMap.get(null));
输出:
"world"