HashMap null值问题

时间:2014-12-10 11:01:20

标签: java

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

  1. 当我使用键

  2. 时,我的值为空
  3. 当密钥本身不存在时

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

    Map map = new HashMap();
    map.put(1,null);
    System.out.println(map.get(1));
    System.out.println(map.get(2));
    

    答案:

    null
    
    null
    

3 个答案:

答案 0 :(得分:8)

虽然getnull值和不存在的密钥返回相同的结果,但containsKey却没有:

map.containsKey(1)会返回true

map.containsKey(2)会返回false

此外,如果您遍历Map的密钥(使用keySet()),1将在那里而2则不会。

答案 1 :(得分:1)

如果没有Value映射到密钥,则Hashmap返回null。所以这也可以通过你的代码来解决:

if( map.get(1) != null ){
     //
}

Reference Here

答案 2 :(得分:0)

检查值是否为null以避免空打印。

伪代码:

//For inputting
if(object != null){
   map.put(1, object);
}
//For getting the value
if(value != null){
     map.get(value)
  }