【笔记】lambda、streamAPI、文本块等特性深入讲解

视频地址:https://www.bilibili.com/video/BV1sE411P7C1?p=4

全免费代码及文章:https://www.kancloud.cn/hanxt/javacrazy/content

视频的笔者博客:www.zimug.com 

1.Lambda表达式

     匿名内部类实现接口

简化后

2.Stream代替for循环

    对nameStrs进行filter操作,筛选出所有以L开始的元素,map表示对每一个数据进行处理,此处为变为大写,sorted为排序,collect为转换成list。

    例子:

2.1将文件读取为stream形式:

3.Stream的filter函数与谓词逻辑

此处filter的参数为Predicate:

Predicate是谓语,谓词的意思,所以关于Predicate的逻辑叫谓词逻辑

可在对应实体类中定义Predicate:

使用定义好的Predicate:

4.Stream的map数据转换

对元素进行逐个处理

不仅可以对数据格式进行转换,也可以转换成对应长度

例子:将对象中所有age加一,并将性别为M的转换为Male,F转换成Female

如果不想写return e;的话,可以使用peek函数,Peek属于一种特殊的map函数,此时入参属于引用数据类型,等价于上图的map

多维数组数据转换,使用flatmap

5.Stream的状态与并行操作

有状态操作:涉及其他元素

无状态操作:只涉及单个元素

Stream默认为串行sequential()模式,在进行无状态操作时,可使用parellel()并行处理方式对元素进行处理,效率会比较高。并行模式的处理效率和CPU的核数相关。

6.关于Stream性能不要人云亦云

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值