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集合

获取并发流

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

posted @ 2020-10-09 17:28  樱空废宅  阅读(438)  评论(0)    收藏  举报