1. 使用 Iterator 遍历 HashMap EntrySet

2. 使用 Iterator 遍历 HashMap KeySet

3. 使用 For-each 循环迭代 HashMap

4. 使用 Lambda 表达式遍历 HashMap

5. 使用 Stream API 遍历 HashMap

显示例子:

1. 使用 Iterator 遍历 HashMap EntrySet

  1. package com.jia.map;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Iterator;
  5. import java.util.Map;
  6.  
  7. public class HashMapDemo {
  8.  
  9. public static void main(String[] args) {
  10.  
  11. Map<Integer,String> map = new HashMap<>();
  12. map.put(1,"java");
  13. map.put(2,"c");
  14. map.put(3,"c++");
  15. map.put(4,"c#");
  16. map.put(5,"spring");
  17.     
  18. Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
  19. while (iterator.hasNext()){
  20. Map.Entry<Integer, String> entry = iterator.next();
  21. System.out.println(entry.getKey() + ":" + entry.getValue());
  22.  
  23. }
  24. }
  25. }

Output:

  1. 1java
  2. 2c
  3. 3c++
  4. 4c#
  5. 5spring
  6.  
  7. Process finished with exit code 0

2. 使用 Iterator 遍历 HashMap KeySet

  1. package com.jia.map;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Iterator;
  5. import java.util.Map;
  6.  
  7. public class HashMapDemo02 {
  8.  
  9. public static void main(String[] args) {
  10.  
  11. Map<Integer,String> map = new HashMap<>();
  12. map.put(1,"java");
  13. map.put(2,"c");
  14. map.put(3,"c++");
  15. map.put(4,"c#");
  16. map.put(5,"spring");
  17.  
  18. Iterator<Integer> iterator = map.keySet().iterator();
  19. while (iterator.hasNext()){
  20. Integer key = iterator.next();
  21. System.out.println(key);
  22. System.out.println(map.get(key));
  23. }
  24. }
  25. }

Output:

  1. 1
  2. java
  3. 2
  4. c
  5. 3
  6. c++
  7. 4
  8. c#
  9. 5
  10. spring
  11.  
  12. Process finished with exit code 0

3. 使用 For-each 循环遍历 HashMap

  1. package com.jia.map;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. public class HashMapDemo03 {
  7.  
  8. public static void main(String[] args) {
  9.  
  10. Map<Integer,String> map = new HashMap<>();
  11. map.put(1,"java");
  12. map.put(2,"c");
  13. map.put(3,"c++");
  14. map.put(4,"c#");
  15. map.put(5,"spring");
  16.  
  17. for (Map.Entry<Integer, String> entry : map.entrySet()) {
  18. System.out.println(entry.getKey() + ":" + entry.getValue());
  19. }
  20. }
  21. }

Output:

  1. 1java
  2. 2c
  3. 3c++
  4. 4c#
  5. 5spring
  6.  
  7. Process finished with exit code 0

4. 使用 Lambda 表达式遍历 HashMap(推荐!!!

  1. package com.jia.map;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. public class HashMapDemo04 {
  7.  
  8. public static void main(String[] args) {
  9.  
  10. Map<Integer,String> map = new HashMap<>();
  11. map.put(1,"java");
  12. map.put(2,"c");
  13. map.put(3,"c++");
  14. map.put(4,"c#");
  15. map.put(5,"spring");
  16.  
  17. map.forEach((key,value) ->{
  18. System.out.println(key + ":" + value);
  19. });
  20. }
  21. }

Output:

  1. 1java
  2. 2c
  3. 3c++
  4. 4c#
  5. 5spring
  6.  
  7. Process finished with exit code 0

5. 使用 Stream API 遍历 HashMap(推荐!!!

  1. package com.jia.map;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. public class HashMapDemo05 {
  7.  
  8. public static void main(String[] args) {
  9.  
  10. Map<Integer,String> map = new HashMap<>();
  11. map.put(1,"java");
  12. map.put(2,"c");
  13. map.put(3,"c++");
  14. map.put(4,"c#");
  15. map.put(5,"spring");
  16.  
  17. map.entrySet().stream().forEach((entry) ->{
  18. System.out.println(entry.getKey() + ":" + entry.getValue());
  19. });
  20. }
  21. }

Output:

  1. 1java
  2. 2c
  3. 3c++
  4. 4c#
  5. 5spring
  6.  
  7. Process finished with exit code 0

HashMap集合类 5种最佳遍历方式的更多相关文章

  1. ArrayList和LinkedList的几种循环遍历方式及性能对比分析(转)

    主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论. 通过本文你可以 ...

  2. ArrayList和LinkedList的几种循环遍历方式及性能对比分析(转载)

    原文地址: http://www.trinea.cn/android/arraylist-linkedlist-loop-performance/ 原文地址: http://www.trinea.cn ...

  3. 【转】ArrayList和LinkedList的几种循环遍历方式及性能对比分析

    原文网址:http://www.trinea.cn/android/arraylist-linkedlist-loop-performance/ 主要介绍ArrayList和LinkedList这两种 ...

  4. Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 [ 转载 ]

    Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 @author Trinea 原文链接:http://www.trinea.cn/android/arrayl ...

  5. (转)ArrayList和LinkedList的几种循环遍历方式及性能对比分析

    主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论. 通过本文你可以 ...

  6. ArrayList和LinkedList的几种循环遍历方式及性能对比分析

    最新最准确内容建议直接访问原文:ArrayList和LinkedList的几种循环遍历方式及性能对比分析 主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性 ...

  7. JS几种数组遍历方式以及性能分析对比

    前言 这一篇与上一篇 JS几种变量交换方式以及性能分析对比 属于同一个系列,本文继续分析JS中几种常用的数组遍历方式以及各自的性能对比 起由 在上一次分析了JS几种常用变量交换方式以及各自性能后,觉得 ...

  8. JS几种数组遍历方式总结

    JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代 ...

  9. 遍历 HashMap 的 5 种最佳方式

    使用 Iterator 遍历 HashMap EntrySet 使用 Iterator 遍历 HashMap KeySet 使用 For-each 循环迭代 HashMap 使用 Lambda 表达式 ...

随机推荐

  1. Solution -「LOJ #150」挑战多项式 ||「模板」多项式全家桶

    \(\mathcal{Description}\)   Link.   给定 \(n\) 次多项式 \(F(x)\),在模 \(998244353\) 意义下求 \[G(x)\equiv\left\{ ...

  2. v-model的修饰符

    .lazy 就是在用户输入时数据不会进行传输,在失去焦点后或者按回车,才会将数据将进行改变 .number 因为v-model所绑定的数据,都会默认转换为string类型,而.number就能将数据转 ...

  3. Python+selenium自动循环发邮件

    Python源代码如下: # coding=utf-8 from selenium import webdriver from time import sleep from random import ...

  4. Django的后台管理系统Admin(5)

    Django的后台管理系统就是为了方便管理员管理网站,所以django自带了一个后台管理系统,接下来记录一下如何使用这个后台的管理系统. 首先我们要进入后台管理系统,就要有一个管理员的账号,先来创建有 ...

  5. NSSCTF-gif好像有点大

    下载的附件压缩包是一个接近9mb的压缩包,其实是比较简单的一个小杂项,应该就算是个签到,接下来就是使用工具进行解答,可以使用LSB隐写工具,一帧一帧的查看,最后是在500多看到的一个是存在二维码的,扫 ...

  6. bi报表是什么意思,有什么优势?

    ​BI也叫商业智能系统,BI报表也就是将企业中现有数据进行整合并提供出的报表,商业智能描述了一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定. 商业智能技术提供使企业迅速分析数据的技 ...

  7. HDFS成员的工作机制

    NameNode工作机制 nn负责管理块的元数据信息,元数据信息为fsimage和edits预写日志,通过edits预写日志来更新fsimage中的元数据信息,每次namenode启动时,都会将磁盘中 ...

  8. Linux命令(ping-telnet-netstat-curl-ps)

    转至:https://www.jianshu.com/p/577bbd15a6f8 1.ping命令 ping命令用来测试主机之间网络的连通性.执行ping指令会使用ICMP传输协议,发出要求回应的信 ...

  9. Qt:QWebEngineView

    0.说明 QWebEngineView提供一个用于展示和编辑网页内容的Widget,QWebEngineView本质是一个Widget. 一个Web View通过load( QUrl )方法加载一个U ...

  10. LeetCode-029-两数相除

    两数相除 题目描述:给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的 ...