HashMap集合类 5种最佳遍历方式
1. 使用 Iterator 遍历 HashMap EntrySet
2. 使用 Iterator 遍历 HashMap KeySet
3. 使用 For-each 循环迭代 HashMap
4. 使用 Lambda 表达式遍历 HashMap
5. 使用 Stream API 遍历 HashMap
显示例子:
1. 使用 Iterator 遍历 HashMap EntrySet
package com.jia.map; import java.util.HashMap;
import java.util.Iterator;
import java.util.Map; public class HashMapDemo { public static void main(String[] args) { Map<Integer,String> map = new HashMap<>();
map.put(1,"java");
map.put(2,"c");
map.put(3,"c++");
map.put(4,"c#");
map.put(5,"spring");
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<Integer, String> entry = iterator.next();
System.out.println(entry.getKey() + ":" + entry.getValue()); }
}
}
Output:
1:java
2:c
3:c++
4:c#
5:spring Process finished with exit code 0
2. 使用 Iterator 遍历 HashMap KeySet
package com.jia.map; import java.util.HashMap;
import java.util.Iterator;
import java.util.Map; public class HashMapDemo02 { public static void main(String[] args) { Map<Integer,String> map = new HashMap<>();
map.put(1,"java");
map.put(2,"c");
map.put(3,"c++");
map.put(4,"c#");
map.put(5,"spring"); Iterator<Integer> iterator = map.keySet().iterator();
while (iterator.hasNext()){
Integer key = iterator.next();
System.out.println(key);
System.out.println(map.get(key));
}
}
}
Output:
1
java
2
c
3
c++
4
c#
5
spring Process finished with exit code 0
3. 使用 For-each 循环遍历 HashMap
package com.jia.map; import java.util.HashMap;
import java.util.Map; public class HashMapDemo03 { public static void main(String[] args) { Map<Integer,String> map = new HashMap<>();
map.put(1,"java");
map.put(2,"c");
map.put(3,"c++");
map.put(4,"c#");
map.put(5,"spring"); for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
Output:
1:java
2:c
3:c++
4:c#
5:spring Process finished with exit code 0
4. 使用 Lambda 表达式遍历 HashMap(推荐!!!)
package com.jia.map; import java.util.HashMap;
import java.util.Map; public class HashMapDemo04 { public static void main(String[] args) { Map<Integer,String> map = new HashMap<>();
map.put(1,"java");
map.put(2,"c");
map.put(3,"c++");
map.put(4,"c#");
map.put(5,"spring"); map.forEach((key,value) ->{
System.out.println(key + ":" + value);
});
}
}
Output:
1:java
2:c
3:c++
4:c#
5:spring Process finished with exit code 0
5. 使用 Stream API 遍历 HashMap(推荐!!!)
package com.jia.map; import java.util.HashMap;
import java.util.Map; public class HashMapDemo05 { public static void main(String[] args) { Map<Integer,String> map = new HashMap<>();
map.put(1,"java");
map.put(2,"c");
map.put(3,"c++");
map.put(4,"c#");
map.put(5,"spring"); map.entrySet().stream().forEach((entry) ->{
System.out.println(entry.getKey() + ":" + entry.getValue());
});
}
}
Output:
1:java
2:c
3:c++
4:c#
5:spring Process finished with exit code 0
HashMap集合类 5种最佳遍历方式的更多相关文章
- ArrayList和LinkedList的几种循环遍历方式及性能对比分析(转)
主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论. 通过本文你可以 ...
- ArrayList和LinkedList的几种循环遍历方式及性能对比分析(转载)
原文地址: http://www.trinea.cn/android/arraylist-linkedlist-loop-performance/ 原文地址: http://www.trinea.cn ...
- 【转】ArrayList和LinkedList的几种循环遍历方式及性能对比分析
原文网址:http://www.trinea.cn/android/arraylist-linkedlist-loop-performance/ 主要介绍ArrayList和LinkedList这两种 ...
- Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 [ 转载 ]
Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 @author Trinea 原文链接:http://www.trinea.cn/android/arrayl ...
- (转)ArrayList和LinkedList的几种循环遍历方式及性能对比分析
主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论. 通过本文你可以 ...
- ArrayList和LinkedList的几种循环遍历方式及性能对比分析
最新最准确内容建议直接访问原文:ArrayList和LinkedList的几种循环遍历方式及性能对比分析 主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性 ...
- JS几种数组遍历方式以及性能分析对比
前言 这一篇与上一篇 JS几种变量交换方式以及性能分析对比 属于同一个系列,本文继续分析JS中几种常用的数组遍历方式以及各自的性能对比 起由 在上一次分析了JS几种常用变量交换方式以及各自性能后,觉得 ...
- JS几种数组遍历方式总结
JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代 ...
- 遍历 HashMap 的 5 种最佳方式
使用 Iterator 遍历 HashMap EntrySet 使用 Iterator 遍历 HashMap KeySet 使用 For-each 循环迭代 HashMap 使用 Lambda 表达式 ...
随机推荐
- AI 神经网络理解
神经网络理解 原文写于2019-12-05,2021-12-08改为markdown
- Dubbo扩展点应用之六服务动态降级
服务降级,当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务有策略的降低服务级别以释放服务器资源保证核心任务的政策运行. 为什么要使用服务降级呢?这是为了防止分布式服务发送雪崩效应,也就是蝴蝶 ...
- [LeetCode]剑指 Offer 17. 打印从1到最大的n位数
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数.比如输入 3,则打印出 1.2.3 一直到最大的 3 位数 999. 示例 1: 输入: n = 1 输出: [1,2,3,4,5,6,7, ...
- vscode打开多个文件
vscode短时间内打开多个文件会覆盖原先打开的文件,在右方编辑区只显示一个.若想每次打开,都新创建一个编辑,可以用以下2个简单的方法: 方法一:直接在右侧打开的文件上,Ctrl + S,保存一次,再 ...
- Java基础问题
基础问题 谈谈你对面向对象的理解 -- 结合场景 为何要使用对象编程? 可重复利用,方便拓展 面向对象有三大特征:封装.继承和多态 封装:为什么要封装?可以使类的成员(数据和行为)有选择性的暴露,这里 ...
- 用商业智能BI做出来的报表,甩别人一条街!
同样是做数据分析的,会商业智能BI的人做的报表都比别人好看.这里所说的好看其实是包括了两个意义,一是排版.色彩搭配等,颜值上的好看:二是把数据分析结果展现地直观易懂上的"好看".想 ...
- 关于GDPR的六大理解
通用数据保护条例(GDPR)于2018年5月生效,根据法律条文,英国几乎所有企业都需要遵守该规定.然而,人们对法规本身及其对组织的意义仍存在一些误解.这可能会导致一些错误的决定. 通用数据保护条例(G ...
- windbg调试命令
重要 (1) windbg命令分为标准命令(40个左右),元命令(一百多个)和扩展命令. 标准命令提供最基本的调试功能,不区分大小写.如:bp g dt dv k等 元命令提供标准命令没有提供的功能, ...
- 【C# 反射】使用 Activator 类 -激活器
创建类的实例: //需要添加对Education.dll的引用才能正确执行 object CreateInstanceKind1 = Activator.CreateInstance("Ed ...
- pandas补充(其二)与matplotlib补充
今日内容概要 pandas补充知识(2) matplotlib补充知识 今日内容详细 pandas补充 数据汇总 # 数据透视表 pd.pivot_table(data,values-None,ind ...