我有两个哈希图,每个哈希图代表一个字符串的字符数,即HashMap<Character, Integer>
。我只想比较两个字符串是否具有完全相同的出现次数的相同字符。对于一次迭代,map1具有对('a',1913),而map2也是如此,在这种情况下,if条件不应该满足,但确实如此,这确实很奇怪。代码如下:
for (char key: map1.keySet()) {
System.out.print(map1.get(key)) // 1913
System.out.print(map2.get(key)) // 1913
if(map1.get(key) != map2.get(key)) {
System.out.print(map1.get(key)) // 1913
System.out.print(map2.get(key)) // 1913
return false; // run into this if condition
}
}
但是,如果我改为写:
for (char key: map1.keySet()) {
int num1 = map1.get(key) // 1913
int num2 = map2.get(key) // 1913
if(num1 != num2) {
return false; // didn't run into this if condition
}
}
我得到了书面答复。有人可以解释为什么这种超级奇怪的稀薄发生了吗?我假设如果条件相同的键,您不能两次使用map.get(key)?