HashMap<Character, Integer> mapS = new HashMap();
HashMap<Character, Integer> mapT = new HashMap();
/**
*省略
**/
for(Map.Entry<Character, Integer> entry : mapT.entrySet())
if (mapS.get(entry.getKey()) != entry.getValue()) {
return false;
}
return true;
本来mapS.get()
到的Integer 的 值 和entry.getValue()
得到的Integer的值相等,但是用==比较的结果却是false
原因在于,java中Integer类型对于-128-127之间的数是缓冲区取的,所以用==比较是一致的。
但对于其它的数字是在堆中new出来的。所以地址空间不一样,也就不相等。
所以比较 Integer的值要用intValue()
不能直接用value,因为value是私有的成员