java8 forEach结合Lambda表达式遍历 List操作
作者:91奔跑的蜗牛 发布时间:2021-07-04 07:22:55
标签:java8,forEach,Lambda,List
我就废话不多说了,大家还是直接看代码吧~
@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


猜你喜欢
- 目录一、SpringMvc框架简介1、Mvc设计理念2、SpringMvc简介二、SpringMvc执行流程1、流程图解2、步骤描述3、核心
- 前言前段时间看到了豆瓣FM的音乐播放界面,有一个环形的进度条,非常的好看,于是想了想,为什么不自己做一个呢,于是就开始了自定义的过程豆瓣FM
- 前言现在很多应用都会用到地图,但是我们肯定不想自己的app中还要弄个导航神马的,所以第三方的地图也为我们开辟了一条捷径,直接将数据传输到地图
- 摘要今天用compose来构建一个气泡上升粘连动画和水滴下坠动画,Github源码点击这里知识点compose动画贝塞尔曲线缓动函数comp
- 新建线程新建线程很简单。只需要使用new关键字创建一个线程对象,然后调用它的start()启动线程即可。Thread thread1 = n
- 本文实例讲述了C#实现HSL颜色值转换为RGB的方法。分享给大家供大家参考。具体实现方法如下://This method converts
- 1、通过WindowManager获取DisplayMetrics dm = new DisplayMetrics();getWindowM
- 本节作为主要讲解Spring Data的环境搭建JPA Spring Data :致力于减少数据访问层(DAO)的开发量。开发者唯一要做的就
- 1.所有流程的起点是从拨号后按下拨号键开始,此步的代码在/android sourcecode/packages/Contacts/src/
- 一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中I
- spring cloud oauth2 feign 遇到的坑关于oauth2相关的内容这里不重复描述,在spring cloud中在管理内部
- 前言现在APP中用到H5页面的越来越多,而如何正确获取WebView的网页title是必须要考虑的。最近做项目的时候,老大让我把之前做的we
- 一、序言Kotlin挂起函数平时在学习和工作中用的比较多,掌握其原理还是很有必要的。本文将一步一步带着大家分析其原理实现。ps: 文中所用的
- 本文实例为大家分享了java图形用户界面实现菜单功能的具体代码,供大家参考,具体内容如下题目:编写一个图形用户界面,实现菜单的功能。有3个一
- 前言今天刚买了一台服务器,上面什么都没有,正好可以出一期 Linux 上配置java环境的教程可以看到我这个服务器上面是没有配置过 java
- 线程可以划分优先级,优先级高的线程得到的CPU资源比较多,也就是CPU优先执行优先级高的线程对象中的任务。设置线程优先级有助于帮助线程规划器
- 题目要求:两人比赛,A,B,每人最开始分得6张手牌,手牌大小为从1到9 A先出牌,B后出牌,若出牌在桌面上存在,在出牌人获得两张相同牌中间的
- 最近根据项目的需求,需要限制用户每天的发送短信数量。这样以来就需要写一个定时任务,每天去置零一次所有用户的发送短信统计数量。首先,在appl
- 一.总体设计1.寻找规律,公式化的生成坐标系。2.将生成坐标系的关键参数设置为可自定义,从而可变的可以生成自己想要的坐标系。3.将需要绘制的
- 对于以下数据,如何在运行时通过字符串来得到静态变量UIPath的值。public class GameMainMenu : UIClass{