专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java HashMap 遍历方式性能探讨(遍历hashmap的三种方式)

temp10 2024-09-22 09:58:20 java教程 8 ℃ 0 评论

关于HashMap的实现这里就不展开了,具体可以参考JDK7与JDK8中HashMap的实现。

https://my.oschina.net/hosee/blog/618953

Java HashMap 遍历方式性能探讨(遍历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:

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

2. Map.foreach

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

Map.foreach本质仍然是entrySet

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

2.1 使用Java8的foreach+lambda表达式遍历Map

写在最后:小编为大家准备了一些适合于1-5年以上开发经验的java程序员面试涉及到的绝大部分面试题及答案做成了文档和学习笔记文件以及架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望可以帮助到大家。

获取方式:请大家关注并私信小编关键词:“资料”即可获取你需要的各类资料。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表