Java 当键不存在时,哈希表返回null或引发异常?

Java 当键不存在时,哈希表返回null或引发异常?,java,dictionary,Java,Dictionary,对于上面的链接,当映射中不存在键时,HashMap似乎返回null。然而,当我尝试: Map<Integer,Integer> hs = new HashMap<Integer,Integer>(); int value = hs.get(1); System.out.println(value); 有什么问题吗?如何让Map在这种情况下返回null而不是抛出异常?int是一个原语,不支持null值。您的代码可以理解为: Integer temp = hs.get(1)

对于上面的链接,当映射中不存在键时,
HashMap
似乎返回null。然而,当我尝试:

Map<Integer,Integer> hs = new HashMap<Integer,Integer>();
int value = hs.get(1);
System.out.println(value);

有什么问题吗?如何让
Map
在这种情况下返回null而不是抛出异常?

int
是一个原语,不支持
null
值。您的代码可以理解为:

Integer temp = hs.get(1);
int value = temp.intValue();
            ^null^
由于此
Integer temp
变量为
null
,因此在执行到
int
的自动取消装箱时,会出现
NullPointerException

要避免此问题,请使用
Integer
变量,而不是
int

Map<Integer,Integer> hs = new HashMap<Integer,Integer>();
Integer value = hs.get(1);
System.out.println(value);
Map hs=newhashmap();
整数值=hs.get(1);
系统输出打印项次(值);
Map<Integer,Integer> hs = new HashMap<Integer,Integer>();
Integer value = hs.get(1);
System.out.println(value);