我就废话不多说了,大家还是直接看代码吧~
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
@Test
void testJava8ForeachMap() {
Map<String, Integer> items = new HashMap<>();
items.put( "A" , 10 );
items.put( "B" , 20 );
items.put( "C" , 30 );
items.put( "D" , 40 );
items.put( "E" , 50 );
items.put( "F" , 60 );
//普通方式遍历Map
for (Map.Entry<String, Integer> entry:items.entrySet()){
System.out.println(entry.getKey()+ ":" +entry.getValue());
}
System.out.println( "===================" );
//java8 foreach + 拉姆达表达式遍历Map
items.forEach((k, v) -> {
System.out.println(k+ ":" +v);
});
}
@Test
void testJava8ForeachList() {
List<String> items = new ArrayList<>();
items.add( "A" );
items.add( "B" );
items.add( "C" );
items.add( "D" );
items.add( "E" );
//普通写法遍历List
for (String item:items){
System.out.println(item);
}
System.out.println( "单独的 forEach 写法==========" );
//单独的 forEach 写法
Consumer consumer = new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
};
items.forEach(consumer);
System.out.println( "forEach结合Lambda写法==========" );
//输出 A,B,C,D,E
items.forEach(s -> {
System.out.println(s);
});
System.out.println( "forEach结合Lambda写法,添加过滤条件==========" );
//输出 C
items.forEach((s) -> {
if ( "C" .equals(s)){
System.out.println(s);
}
});
}
|
补充知识:java8 lambda表达式之map和foreach的区别
看 一段代码:
?
1
2
3
4
5
6
7
8
9
|
List<String> list = new ArrayList<>();
list.add( "a" );
list.add( "c" );
list.add( "s" );
list.add( "b" );
list.add( "f" );
list.forEach(s -> {
System.out.println(args.getClass().getTypeName());
});
|
输出结果:
?
1
2
3
4
5
|
java.lang.String[]
java.lang.String[]
java.lang.String[]
java.lang.String[]
java.lang.String[]
|
再看map操作符
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
List<String> list = new ArrayList<>();
list.add( "1" );
list.add( "2" );
list.add( "3" );
list.add( "4" );
list.add( "5" );
List<Integer> list1 = list.stream().map(s -> {
Integer a = Integer.parseInt(s);
a = a+ 1 ;
System.out.println(a.getClass().getTypeName());
return a;
}).collect(Collectors.toList());
System.out.println(list);
System.out.println(list1);
|
输出结果:
?
1
2
3
4
5
6
7
|
java.lang.Integer
java.lang.Integer
java.lang.Integer
java.lang.Integer
java.lang.Integer
[ 1 , 2 , 3 , 4 , 5 ]
[ 2 , 3 , 4 , 5 , 6 ]
|
map对原来的集合操作后返回一个新的集合。此集合和原集合无任何关系,且不会改变原集合的任何东西
foreach操作的是原集合,返回的还是原集合
以上这篇java8 forEach结合Lambda表达式遍历 List操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持快网idc。
原文链接:https://blog.csdn.net/xldmx/article/details/107990782
相关文章
猜你喜欢
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-06-04 47
-
2025-06-04 40
-
2025-05-25 97
-
Linux开启snmp监控后大量 Received SNMP packet(s) from UDP 的解决方法
2025-05-27 65 -
2025-06-05 65
热门评论