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啦!!!的更多相关文章

  1. HashMap循环遍历方式及其性能对比(zhuan)

    http://www.trinea.cn/android/hashmap-loop-performance/ ********************************************* ...

  2. HashMap循环遍历方式及其性能对比

    主要介绍HashMap的四种循环遍历方式,各种方式的性能测试对比,根据HashMap的源码实现分析性能结果,总结结论.   1. Map的四种遍历方式 下面只是简单介绍各种遍历示例(以HashMap为 ...

  3. HashMap 中7种遍历方式的性能分析

    随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题. 本文先从 HashMap 的遍历方法讲起,然后再从性能. ...

  4. HashMap 的 7 种遍历方式与性能分析

    前言 随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题. 本文先从 HashMap 的遍历方法讲起,然后再从 ...

  5. ArrayList和LinkedList的几种循环遍历方式及性能对比分析(转)

    主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论. 通过本文你可以 ...

  6. ArrayList和LinkedList的几种循环遍历方式及性能对比分析(转载)

    原文地址: http://www.trinea.cn/android/arraylist-linkedlist-loop-performance/ 原文地址: http://www.trinea.cn ...

  7. ArrayList和LinkedList遍历方式及性能对比分析

    ArrayList和LinkedList的几种循环遍历方式及性能对比分析 主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayLis ...

  8. 【转】ArrayList和LinkedList的几种循环遍历方式及性能对比分析

    原文网址:http://www.trinea.cn/android/arraylist-linkedlist-loop-performance/ 主要介绍ArrayList和LinkedList这两种 ...

  9. Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 [ 转载 ]

    Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 @author Trinea 原文链接:http://www.trinea.cn/android/arrayl ...

  10. (转)ArrayList和LinkedList的几种循环遍历方式及性能对比分析

    主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论. 通过本文你可以 ...

随机推荐

  1. 2020-2021第一学期2024"DCDD"小组第十二周讨论

    2020-2021第一学期"DCDD"第十二周讨论 这次不同的是,先来一个密文吧: 53fd95b7c2bd8c1383cdcbf5b04e3880 求解! 小组名称:DCDD 小 ...

  2. modesim : mosel not define

    这个星期仿真sdram时,添加的sdram 模型文件在modesim中总是找不到,在qq群里提问和私聊别人都没有得到解决方法.于是自己摸索了好多天.终于得到了解决. 可以看到modesim里面work ...

  3. HidController控件下载安装

    用Delphi 或 C++ 开发 USB 接口时要用到的 HidController控件,如果你找不到去哪下载参考这里. 下载地址:https://sourceforge.net/projects/j ...

  4. zxb2022习题班16

    (1) 原则:合同中包含多项履约义务的,企业应当按照各单项履约义务所承诺的商品的单独售价的比例,将交易价格分摊至各单项履约义务. 方法:按照A和B商品单独售价的相对比例, 2x22年4月16日 借:合 ...

  5. Matlab|fastica遇到的问题

    fastica 1 安装 FastICA 在matlab代码实现以及运行结果by阳光idol 安装步骤博主阳光idol已经写的很清楚了 FastICA 在matlab代码实现.运行结果及错误调试方法 ...

  6. ceph PG 故障状态

    PG 故障状态 Creating(创建中)在创建POOL时,需要指定PG的数量,此时PG的状态便处于creating,意思是Ceph正在创建PG Peering(互联中)peering的作用主要是在P ...

  7. Mac设置自动连接蓝牙设备

    1.安装blueutil管理软件 通过 brew install blueutil 2.通过命令: blueutil --paired 查看当前连接过的蓝牙设备的地址. 3.获取blueutil软件的 ...

  8. 基于airtest验证Android端app是否安装及自动化安装

    ​ 1.检测app是否安装: 使用check_app方法检测是否安装:为什么需要在封装一层做断言呢?主要check_app方法安装成功会返回True,但是未检测到安装时直接报异常了,停止执行.无法直接 ...

  9. vscode设置终端主题,设置终端选中颜色

    vscode定义主题色官网: https://code.visualstudio.com/api/references/theme-color#integrated-terminal-colors 问 ...

  10. 量化交易基础-ICIR

    IC - information coefficient r=1.5+a1+a2+...+a81 ai={-1,1}随机序列 ()收益序列 E(r)=1.5 期望 cov(r)=81 协方差 std( ...