专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 JavaHashMap遍历方式性能探讨

JavaHashMap遍历方式性能探讨

更新时间:2020-08-18 16:33:07 来源:动力节点 浏览1772次

JDK8之前,可以使用keySet或者entrySet来遍历HashMap,JDK8中引入了map.foreach来进行遍历。

原因:

keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value。而entrySet只是遍历了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。

1. keySet和entrySet

(1)基本用法

keySet:

java hashmap的遍历

entrySet:

java hashmap的遍历

java hashmap的遍历

其实这里已经很明显了,当要得到某个value时,keySet还需要从HashMap中get,entrySet相比keySet少了遍历table的过程,这也是两者性能上的主要差别。

2. Map.foreach

在JDK8以后,引入了Map.foreach。

Map.foreach本质仍然是entrySet

java hashmap的遍历

配合lambda表达式一起使用,操作起来更加方便。

(1)使用Java8的foreach+lambda表达式遍历Map

java hashmap的遍历

以上就是动力节点java培训机构的小编针对“JavaHashMap遍历方式性能探讨”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>