HashMap正确遍历方式,千万不要再forforfor啦!!!
for (int i = 0; i < map.size(); i++) {
if (map.get(i)/n>=0.01) {
num++;
}
}
上述代码报空指针异常。为什么?
循环变量 i 取值的范围是从0到 map.size(),但是这里的 map.size() 指的是 HashMap 中键值对的数量,而不是 HashMap 中键的集合的大小。
因此,使用 map.get(i) 来访问 HashMap 中的元素是错误的,应该改为使用 map.values() 方法来访问 HashMap 中的所有值。所以应该使用如下代码
for (int value : map.values()) {
if ((double) value / n >= 0.01) {
num++;
}
}
这样可以避免空指针异常。

浙公网安备 33010602011771号