HashMap null值问题

use*_*322 4 java

两个结果之间有什么区别.

  1. 当我用键空值时

  2. 当密钥本身不存在时

在上面两个条件结果都是null.那么如何识别我的关键价值呢?

Map map = new HashMap();
map.put(1,null);
System.out.println(map.get(1));
System.out.println(map.get(2));
Run Code Online (Sandbox Code Playgroud)

回答:

null

null
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 8

虽然get返回null值和非现有键的相同结果,containsKey但不会:

map.containsKey(1)会回来的true.

map.containsKey(2)会回来的false.

另外,如果你遍历Map(使用keySet())的键,1将会存在而2不会.