作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题
代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等
联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。码炫课堂的个人空间-码炫码哥个人主页-面试,源码等
释放21集全网最深ConcurrentHashMap的vip视频,复现每一行源码
HashMap 的迭代方式一般有如下几种:
- 使用
for-each
循环遍历keySet()
- 使用
for-each
循环遍历entrySet()
- 使用
Iterator
遍历keySet()
- 使用
Iterator
遍历entrySet()
- 使用
Lambda
表达式 - 使用
Streams API
单线程 - 使用
Streams API
多线程
详情
基础数据
private Map<Integer,String> hashMap = new HashMap<>(){
{
put(1,"死磕");
put(2,"死磕 Java");
put(3,"死磕 Spring");
put(4,"死磕 Redis");
put(5,"死磕 Java NIO");
put(6,"死磕 Netty");
put(7,"死磕 Java 新特性");
put(8,"死磕 Java 基础");
}};
使用 for-each 循环遍历 keySet()
@Test
public void test1() {
for (Integer key : hashMap.keySet()) {
System.out.println(key + "---" + hashMap.get(key));
}
}
执行结果:
1---死磕
2---死磕 Java
3---死磕 Spring
4---死磕 Redis
5---死磕 Java NIO
6---死磕 Netty
7---死磕 Java 新特性
8---死磕 Java 基础