Java8新特性-Lambda表达式
Predicate接口使用
请在测试类main方法中完成以下需求
已知有Integer[] arr = {-12345, 9999, 520, 0,-38,-7758520,941213}
a) 使用lambda表达式创建Predicate对象p1,p1能判断整数是否是自然数(大于等于0)
b) 使用lambda表达式创建Predicate对象p2,p2能判断整数的绝对值是否大于100
c) 使用lambda表达式创建Predicate对象p3,p3能判断整数是否是偶数
遍历arr,仅利用已创建的Predicate对象(不使用任何逻辑运算符),完成以下需求
i. 打印自然数的个数
ii. 打印负整数的个数
iii. 打印绝对值大于100的偶数的个数
iv. 打印是负整数或偶数的数的个数

Function接口使用
使用lambda表达式分别将以下功能封装到Function对象中
a) 求Integer类型ArrayList中所有元素的平均数
b) 将Map<String,Integer>中value存到ArrayList
已知学生成绩如下
姓名 成绩
岑小村 59
谷天洛 82
渣渣辉 98
蓝小月 65
皮几万 70
以学生姓名为key成绩为value创建集合并存储数据,使用刚刚创建的Function对象求学生的平均成绩

如何获取流
- 问题:
简述单列集合、双列集合、数组分别如何获取Stream流对象,并进行演示 - 答:
1、java.util.Collection接口中加入了default方法stream()获取流对象,因此其所有实现类均可通过此方式获取流。
2、java.util.Map接口想要获取流,先通过keySet()、values()或entrySet()方法获取键、值或键值对的单列集合,再通过stream()获取流对象。
3、数组获取流,使用Stream接口中的的静态方法of(T...values)获取流

过滤:filter、结果收集(数组)
- 问题:
有如下7个元素黄药师,冯蘅,郭靖,黄蓉,郭芙,郭襄,郭破虏,使用Stream将以郭字开头的元素存入新数组

取用前几个:limit、跳过前几个:skip
- 问题:
已知ArrayList集合中有如下元素{陈玄风、梅超风、陆乘风、曲灵风、武眠风、冯默风、罗玉风},使用Stream
1、取出前2个元素并在控制台打印输出。
2、取出后2个元素并在控制台打印输出。

映射:map、逐一消费:forEach
- 问题:
有如下整数1,-2,-3,4,-5
使用Stream取元素绝对值并打印

组合:concat、结果收集(list)
- 问题:
已知数组arr1中有如下元素{郭靖,杨康},arr2中有如下元素{黄蓉,穆念慈},使用Stream将二者合并到List集合

获取并发流
- 问题:
请分别写出获取并发流的两种方式。

你知道的越多,你不知道的越多。

Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。使用Lambda语法来代替匿名的内部类,代码不仅简洁,而且还可读。
浙公网安备 33010602011771号