java8 forEach结合Lambda表达式遍历 List操作
作者:91奔跑的蜗牛 时间:2021-07-04 07:22:55
我就废话不多说了,大家还是直接看代码吧~
@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的区别
看 一段代码:
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());
});
输出结果:
java.lang.String[]
java.lang.String[]
java.lang.String[]
java.lang.String[]
java.lang.String[]
再看map操作符
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);
输出结果:
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操作的是原集合,返回的还是原集合
来源:https://blog.csdn.net/xldmx/article/details/107990782
标签:java8,forEach,Lambda,List
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
springboot集成mybatis plus和dynamic-datasource注意事项说明
2023-12-05 03:54:21
java swing实现QQ账号密码输入框
2023-01-13 06:26:52
![](https://img.aspxhome.com/file/2023/2/71592_0s.png)
java实现分页显示效果
2021-12-29 20:17:43
![](https://img.aspxhome.com/file/2023/8/61378_0s.jpg)
Java 中解决Unsupported major.minor version 51.0的问题
2022-07-22 03:53:08
![](https://img.aspxhome.com/file/2023/6/62516_0s.jpg)
详解用Eclipse如何创建Web项目
2023-11-11 05:41:01
![](https://img.aspxhome.com/file/2023/3/59393_0s.png)
一文带你了解Java选择排序的原理与实现
2022-05-13 21:01:31
![](https://img.aspxhome.com/file/2023/4/64784_0s.jpg)
IDEA 插件 mapper和xml互相跳转操作
2021-07-19 02:48:13
![](https://img.aspxhome.com/file/2023/4/66024_0s.jpg)
Unity实现攻击范围检测并绘制检测区域
2023-09-18 21:59:10
![](https://img.aspxhome.com/file/2023/7/67557_0s.jpg)
Java异常处理中的一些特殊情况举例
2021-10-11 20:31:54
C#使用Json.Net进行序列化和反序列化及定制化
2023-07-10 19:11:35
Java使用雪花id生成算法详解
2023-11-18 21:58:49
JAVA中实现原生的 socket 通信机制原理
2021-08-08 03:06:01
![](https://img.aspxhome.com/file/2023/4/60484_0s.png)
spring缓存cache的使用详解
2023-03-28 11:36:14
![](https://img.aspxhome.com/file/2023/8/65328_0s.png)
spring boot和mybatis集成分页插件
2021-11-05 10:21:17
常用json与javabean互转的方法实现
2023-01-07 14:24:19
![](https://img.aspxhome.com/file/2023/7/63737_0s.png)
JavaCV实战之调用摄像头基础详解
2022-07-15 02:14:10
![](https://img.aspxhome.com/file/2023/5/66625_0s.png)
带你一文深入认识Java String类
2023-10-15 10:55:54
![](https://img.aspxhome.com/file/2023/4/64154_0s.png)
SpringBoot使用jasypt加解密密码的实现方法(二)
2021-10-15 14:16:46
java日期格式化SimpleDateFormat的使用详解
2023-08-25 03:22:15
![](https://img.aspxhome.com/file/2023/0/58460_0s.png)
Java实现生成JSON字符串的三种方式分享
2022-05-20 15:21:31