HashMap正确遍历方式,千万不要再forforfor啦!!!

Posted crazyfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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++;
    

这样可以避免空指针异常。

以上是关于HashMap正确遍历方式,千万不要再forforfor啦!!!的主要内容,如果未能解决你的问题,请参考以下文章

Java HashMap 如何正确遍历并删除元素

千万不要误用 java 中的 HashCode 方法

HashMap 的 7 种遍历方式与性能分析!(强烈推荐)

HashMap 的 7 种遍历方式与性能分析!(强烈推荐)

java 遍历集合的时候对集合进行操作

转→js数组遍历 千万不要使用for...in...