java8 lambda判断_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. 打印是负整数或偶数的数的个数

6c9711d491acdf4af990ce4424c93170.png

Function接口使用

使用lambda表达式分别将以下功能封装到Function对象中

a) 求Integer类型ArrayList中所有元素的平均数

b) 将Map中value存到ArrayList中

已知学生成绩如下

姓名 成绩

岑小村 59

谷天洛 82

渣渣辉 98

蓝小月 65

皮几万 70

以学生姓名为key成绩为value创建集合并存储数据,使用刚刚创建的Function对象求学生的平均成绩

07aa09057d8c985081f0a5c522c04a9f.png

如何获取流

问题:

简述单列集合、双列集合、数组分别如何获取Stream流对象,并进行演示

答:

1、java.util.Collection接口中加入了default方法stream()获取流对象,因此其所有实现类均可通过此方式获取流。

2、java.util.Map接口想要获取流,先通过keySet()、values()或entrySet()方法获取键、值或键值对的单列集合,再通过stream()获取流对象。

3、数组获取流,使用Stream接口中的的静态方法of(T...values)获取流

3d4580cbdc9eaaf1290dee24a4fa23f7.png

过滤:filter、结果收集(数组)

问题:

有如下7个元素黄药师,冯蘅,郭靖,黄蓉,郭芙,郭襄,郭破虏,使用Stream将以郭字开头的元素存入新数组

1ca90d2611233c368b6fcae34f932a35.png

取用前几个:limit、跳过前几个:skip

问题:

已知ArrayList集合中有如下元素{陈玄风、梅超风、陆乘风、曲灵风、武眠风、冯默风、罗玉风},使用Stream

1、取出前2个元素并在控制台打印输出。

2、取出后2个元素并在控制台打印输出。

788d9ff7645cac94448aaa7e60f87fdd.png

映射:map、逐一消费:forEach

问题:

有如下整数1,-2,-3,4,-5

使用Stream取元素绝对值并打印

5ddb8aaac52e41c8279a5a8424fc9ece.png

组合:concat、结果收集(list)

问题:

已知数组arr1中有如下元素{郭靖,杨康},arr2中有如下元素{黄蓉,穆念慈},使用Stream将二者合并到List集合

66181db9e6591fbf1c96287bad48d3f1.png

获取并发流

问题:

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

5164a145720689164cd029064529cfd4.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值