HashMap的遍历方式

  • 前言
  • 一、Iterator遍历
    • 1. 迭代器遍历EntrySet
    • 2. 迭代器遍历KeySet
  • 二、forEach遍历
    • 1. forEach遍历EntrySet
    • 2. forEach遍历KeySet
  • 三、Lambda遍历
  • 四、Stream遍历
    • 1. 单线程stream()
    • 2. 多线程parallelStream()

前言

HashMap的遍历方式如下:
1. 迭代器遍历
2. forEach遍历
3. Lambda
4. Stream API

测试案例准备工作:

private HashMap<String, Integer> hashMap = new HashMap<String, Integer>();@Before
public void init() {hashMap.put("天踦爵", 18);hashMap.put("鷇音子", 19);hashMap.put("三余无梦生", 20);hashMap.put("素还真", 21);hashMap.put("解锋镝", 22);
}

一、Iterator遍历

1. 迭代器遍历EntrySet

@Test
public void test02() {Iterator iterator = hashMap.entrySet().iterator();while (iterator.hasNext()) {Map.Entry<String, Integer> entry = (Map.Entry) iterator.next();System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());}
}

2. 迭代器遍历KeySet

@Test
public void test04() {Iterator<String> iterator = hashMap.keySet().iterator();while (iterator.hasNext()) {String key = iterator.next();System.out.println("key:" + key + ",value:" + hashMap.get(key));}
}

二、forEach遍历

1. forEach遍历EntrySet

@Test
public void test01() {for (Map.Entry<String, Integer> entry : hashMap.entrySet()) {System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue());}
}

2. forEach遍历KeySet

@Test
public void test03() {for (String key : hashMap.keySet()) {System.out.println("key:" + key + ",value:" + hashMap.get(key));}
}

三、Lambda遍历

@Test
public void test05(){hashMap.forEach((key,value)->{System.out.println("key:" + key + ",value:" + value);});
}

四、Stream遍历

1. 单线程stream()

@Test
public void test06(){hashMap.entrySet().stream().forEach((stringIntegerEntry -> {System.out.println("key:" + stringIntegerEntry.getKey() + ",value:" + stringIntegerEntry.getValue());}));
}

2. 多线程parallelStream()

@Test
public void test07(){hashMap.entrySet().parallelStream().forEach((stringIntegerEntry -> {System.out.println("key:" + stringIntegerEntry.getKey() + ",value:" + stringIntegerEntry.getValue());}));
}

HashMap的七种遍历方式相关推荐

  1. HashMap 的 7 种遍历方式与性能分析!「修正篇」

    这是我的第 57 篇原创文章 首先,给大家说声抱歉~ 事情经过是这样子的,五一节前我发布了一篇文章<HashMap 的 7 种遍历方式与性能分析!>,但是好心的网友却发现了一个问题,他说 ...

  2. HashMap 的 7 种遍历方式+性能分析!

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

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

    来自:Java中文社群 随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题. 本文先从 HashMap 的遍历 ...

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

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

  5. map迭代器遍历_一口气写了 HashMap 的 7种遍历方式,被同事夸了

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

  6. HashMap的三种遍历方式

    集合在应用以及面试中都占有很重要的位置,今天就说说HashMap的遍历方式,偶然在一次面试中被问到的. 关于具体的实现,可以看源码. import java.util.HashMap; import ...

  7. java集合 HashMap的三种遍历方式

    前言: HashMap的集合中的比重是无可厚非的,由自身的数组+链表/红黑树构成的(JDK 1.8),这样使得HashMap优点表现出来: 数组查询效率快: 链表的插入和删除效率也加快 但是HashM ...

  8. HashMap的7种遍历方式

    HashMap 遍历 大体上可以分为4类: 1,迭代器 2,ForEach 遍历 3,lambda 表达式遍历 4,StreamsApi 遍历 但是每种类型下有不同的实现方式,所以又可以分为7种: 案 ...

  9. 后端技术:盘点HashMap 的7种遍历方式

    HashMap 遍历 大体上可以分为4类: 1,迭代器 2,ForEach 遍历 3,lambda 表达式遍历 4,StreamsApi 遍历 但是每种类型下有不同的实现方式,所以又可以分为7种: 案 ...

  10. HashMap 的7种遍历方式

    HashMap 遍历 大体上可以分为4类: 1,迭代器 2,ForEach 遍历 3,lambda 表达式遍历 4,StreamsApi 遍历 但是每种类型下有不同的实现方式,所以又可以分为7种: 案 ...

最新文章

  1. 堆和栈的主要区别由以下几点:
  2. 我的博客网站开发6——博文关键字搜索
  3. 标识为普通SQL语法
  4. 面向对象方法开发的方法
  5. 【转载】一天之内上手.Net+WAP项目
  6. linux--vi的使用
  7. K8s集群部署(四)------ Flannel网络部署
  8. Java并发J.U.C 之 AQS
  9. java 通用组件_写一个通用数据访问组件
  10. IDEA Junit测试
  11. python三天速成_python学习第三天
  12. 解决Chrome插件安装时出现的 “CRX_HEADER_INVALID” (程序包无效) 问题
  13. 关于windows自带的两种远程访问方式
  14. 计算机毕业设计、计算机课程设计怎么做?计算机设计1900套来帮你!
  15. 用echartsjs 实现动态绘制折线、柱状等图形,并实现多图联动效果
  16. 文本分类(text classification)
  17. servu ip段访问_西部数码使用指南:利用安全组设置拦截IP(IP段)
  18. Opencv-python 求原坐标点透视变换后对应坐标点
  19. python readline读文件,并且将其转化为数字形式时:ValueError: could not convert string to float:
  20. AXI latency 理解

热门文章

  1. 小白:测试的逻辑思维
  2. 计算机主机自动关机如何设置,电脑怎么设置自动关机?电脑自动关机方法教程 电脑维修技术网...
  3. 项目中涉及到金钱的计算时,数据库字段的使用
  4. 优酷土豆实时推荐系统架构升级实践
  5. 大功率mos管怎么测量好坏,如何用万用表判断mos管的好坏?够全面!
  6. android图片上传大小限制,Android解决图片上传过大问题
  7. element-ui图片上传组件之限制每次5张上传(或者自定义每次几张上传)
  8. html5 css3 入门教程
  9. 跨平台,跨浏览器兼容性问题_跨浏览器兼容性检查的完整指南
  10. kangle安装php7.0_Kangle Easypanel面板 PHP多版本切换 安装图文教程