遍历HashMap

参考文章:

https://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247493142&idx=2&sn=c1913fc71d79d0f29f7902adf5eb23cb&chksm=fddd30d2caaab9c4761f7323a192cceb2a7b0ecf8cd9b281b2acb6dd581958f5dc2d0f8bd283&mpshare=1&scene=23&srcid=1115iNn2cQ3IyPbHyLPxBoUx&sharer_sharetime=1605420835944&sharer_shareid=9d1e76e919cc0b2f3ca23ed1f5ef67a8#rd

直接上测试代码

package com.shaoming.hashmap;import org.junit.Test;
import sun.awt.SunHints;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;/*** @Auther: shaoming* @Date: 2020/11/15 14:18* @Description: HashMap 遍历从大的方向来说,可分为以下 4 类:* <p>* 迭代器(Iterator)方式遍历;* For Each 方式遍历;* Lambda 表达式遍历(JDK 1.8+);* Streams API 遍历(JDK 1.8+)。* 但每种类型下又有不同的实现方式,因此具体的遍历方式又可以分为以下 7 种:* <p>* 使用迭代器(Iterator)EntrySet 的方式进行遍历;* 使用迭代器(Iterator)KeySet 的方式进行遍历;* 使用 For Each EntrySet 的方式进行遍历;* 使用 For Each KeySet 的方式进行遍历;* 使用 Lambda 表达式的方式进行遍历;* 使用 Streams API 单线程的方式进行遍历;* 使用 Streams API 多线程的方式进行遍历。* 接下来我们来看每种遍历方式的具体实现代码。*/
public class ForhashMap {private static final HashMap<Integer, String> MAP = new HashMap<>();static {MAP.put(1, "Java");MAP.put(2, "JDK");MAP.put(3, "Spring Framework");MAP.put(4, "MyBatis framework");MAP.put(5, "Java中文社群");}//1.迭代器 EntrySet@Testpublic void test1() {HashMap<Integer, String> map = new HashMap<>();map.put(1, "java");map.put(2, "JDK");map.put(3, "Spring Framework");map.put(4, "MyBatis framework");map.put(5, "Java中文社群");//遍历Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();while (iterator.hasNext()) {Map.Entry<Integer, String> entry = iterator.next();System.out.println(entry.getKey());System.out.println(entry.getValue());}}//2.迭代器遍历keyset@Testpublic void test2() {Iterator<Integer> iterator = MAP.keySet().iterator();while (iterator.hasNext()) {Integer key = iterator.next();System.out.println(key);System.out.println(MAP.get(key));}}//3.ForEach  EntrySet@Testpublic void test3() {for (Map.Entry<Integer, String> entry : MAP.entrySet()) {System.out.println(entry.getKey());System.out.println(entry.getValue());}}//4.ForEach keyset@Testpublic void test4() {for (Integer key : MAP.keySet()) {System.out.println(key);System.out.println(MAP.get(key));}}//5.lambda@Testpublic void test5() {MAP.forEach((key, value) -> {System.out.println(key);System.out.println(value);});}//6.Streams API 单线程@Testpublic void test6() {MAP.entrySet().stream().forEach((entry) -> {System.out.println(entry.getKey());System.out.println(entry.getValue());});}//7.Streams API 多线程@Testpublic void test7() {MAP.entrySet().parallelStream().forEach((entry)->{System.out.println(entry.getKey());System.out.println(entry.getValue());});}
}

遍历HashMap(包括lambda表达式)相关推荐

  1. java enum判断_Java Enum枚举 遍历判断 四种方式(包括 Lambda 表达式过滤)

    packagecom.miracle.luna.lambda;importjava.util.Arrays;/*** @Author Miracle Luna * @Date 2019/6/9 23: ...

  2. Map集合遍历方法加lambda表达式

    Map集合遍历方法 通过 map.keySet()方法返回key的Set集合,然后遍历key的Set集合的同时通过调用map.get(key)方法返回相对应的value的值. public stati ...

  3. 【C++】C++11 新特性(auto,decltype,nullptr,快速遍历,【Lambda表达式详解】)

    C++11 重要新特性 auto decltype nullptr 快速遍历与数组初始化 Lambda 表达式 Lambda 应用 外部变量捕获 mutable auto 可以从初始化表达式中推断出变 ...

  4. Java 8 Lambda表达式官方入门教程(包括Lambda表达式介绍和语法)

    Java8做出了比较大的更新,支持了很多新特性,Java8引入的Lambda表达式这一特性,使Java8支持函数式编程,目前网上有较多的教程,本文整理了来自Oralce官方提供的教程. Lambda表 ...

  5. java五种遍历HashMap的方法和性能分析

    在本文中,我们将通过示例讨论在 Java 上遍历 HashMap 的五种最佳方法. 使用Iterator迭代 使用 For-each + entrySet 循环遍历 HashMap 使用 For-ea ...

  6. Java Lambda表达式入门

    本文转自:http://blog.csdn.net/renfufei... 转载请注明出处 原文链接: Start Using Java Lambda Expressions 下载示例程序 Examp ...

  7. java拉姆达表达式事例,Java Lambda表达式详解和实例

    简介 Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式允许你通过表达式来代替功能接口. lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体( ...

  8. 遍历 HashMap 的 5 种最佳方式,我不信你全知道!

    在本文中,我们将通过示例讨论在 Java 上遍历 HashMap 的五种最佳方法. 使用 Iterator 遍历 HashMap EntrySet 使用 Iterator 遍历 HashMap Key ...

  9. Java中Lambda表达式的使用(转)

    https://www.cnblogs.com/franson-2016/p/5593080.html 简介 (译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖" ...

最新文章

  1. AI人才「用工荒」如何解决?看看这几家顶级公司的应对策略
  2. mos管开关电路_MOS管的知识,看这一篇就可以了
  3. jeecg <t:choose 功能标签用法修改 处理选择0条记录回写
  4. iphone 微信下浏览器中数字去除下划线
  5. 认识HTML与CSS
  6. sumk 2.0.0 发布,轻量级互联网框架
  7. 白盒测试之基本路径测试法[3]
  8. OpenERP工作流不同角色看属于自己审批的方法
  9. 斐波那契数列c语言编程递归,C语言实现Fibonacci数列递归
  10. 高数 | 反函数常见问题解决思路
  11. 如何有效的获得高质量的大规模标注数据?
  12. 系统架构设计方法论——Zachman
  13. 微信小程序video组件调用腾讯视频的解析
  14. 【TCP专题】TCP连接断开
  15. JZOJ.5331【NOIP2017模拟8.23】壕游戏
  16. 图神经网络(Graph Neural Networks)概述
  17. java连接access数据库的三种方式以及远程连接
  18. Vue项目脚手架搭建
  19. 知识付费项目有哪些?
  20. cisco3750(CISCO3750G-12S-S)

热门文章

  1. 智能终端不装未成年人保护软件 厂商或面临高额罚款
  2. UniApp + SpringBoot 实现接入支付宝支付功能和退款功能
  3. 计算机应用基础模拟试卷(五),计算机应用基础模拟试卷..pdf
  4. 2022年全球市场防晒伞总体规模、主要生产商、主要地区、产品和应用细分研究报告
  5. Day 23 - 前端开发工具 - HBuilder X
  6. C++ huffman数据压缩算法实现(附源码)
  7. 重庆单招计算机学校有哪些,重庆单招有哪些学校好?
  8. 【美化§魔幻的麒麟xp主题】
  9. prettier 配置
  10. 酷狗音乐如何进入完整歌词界面