Java HashMap 遍历方式性能探讨
来源:互联网 发布:中国战略知乎 编辑:程序博客网 时间:2024/05/02 00:56
Java HashMap 遍历方式性能探讨
关于HashMap的实现这里就不展开了,具体可以参考 JDK7与JDK8中HashMap的实现
JDK8之前,可以使用keySet或者entrySet来遍历HashMap,JDK8中引入了map.foreach来进行遍历。
原因:
keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value。而entrySet只是遍历了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。
1. keySet和entrySet
1.1 基本用法
keySet:
entrySet:
源码上看:
keySet:
entrySet:
其实这里已经很明显了,当要得到某个value时,keySet还需要从HashMap中get,entrySet相比keySet少了遍历table的过程,这也是两者性能上的主要差别。
2. Map.foreach
在JDK8以后,引入了Map.foreach。
Map.foreach本质仍然是entrySet
配合lambda表达式一起使用,操作起来更加方便。
2.1 使用Java8的foreach+lambda表达式遍历Map
Reference:
http://lizhuang.iteye.com/blog/2356044
http://blog.163.com/fw_long/blog/static/51771186201392982041337/
https://yq.aliyun.com/articles/44712
阅读全文
0 0
- Java HashMap 遍历方式性能探讨
- Java HashMap 遍历方式性能探讨
- Java HashMap 遍历方式性能探讨
- Java HashMap遍历方式探讨
- Java HashMap循环遍历方式及其性能对比
- Java HashMap遍历实践,看看不同方式的性能如何
- java遍历HashMap的方式
- HashMap循环遍历方式及其性能对比
- HashMap循环遍历方式及其性能对比
- HashMap循环遍历方式及其性能对比
- HashMap循环遍历方式及其性能对比
- HashMap循环遍历方式及其性能对比
- HashMap循环遍历方式及其性能对比
- HashMap循环遍历方式及其性能对比
- HashMap循环遍历方式及其性能对比
- HashMap循环遍历方式及其性能对比
- HashMap循环遍历方式及其性能对比
- HashMap循环遍历方式及其性能对比
- 云计算的核心技术有哪些?
- keytool工具生成证书:Tomcat启用HTTPS协议配置过程
- equals()和==
- μC/OS-II的初始化和启动过程
- 1009. Product of Polynomials (25)
- Java HashMap 遍历方式性能探讨
- mysql数据库常用知识点归纳
- [NOIP赛前复习第二期]复赛考试技巧与模版
- pta 切分表达式——写个tokenizer吧
- UFT基础_1-6悬停及web下拉框功能
- 当归的功效与作用及食用方法,神奇的当归你吃过吗?
- RDA CSDTK SDK RDA8851
- 详解 ARM Linux启动过程分析
- 4.javascrpt window.onload 和jquery ready()有什么区别?