函数式编程

一.Stream流

Java8的Stream使用的是函数是编程模式,如同它的名字一样,它可以被用来对集合数组进行链状流式的操作。可以更方便的让我们对集合或数组操作。
注意:stream流必须有终结操作

二.集合或数组使用stream流

1.单列集合

集合对象.stream()

2.数组

Arrays.stream(数组)或者使用stream.of来创建

3.双列集合

转换成单列集合后再创建

三.stram流之中间操作

1.filter

可以对流中的元素进行条件过滤,符合过滤条件的才能继续留在流中。

2.map

可以把对流中的元素进行计算或转换。

3.distinct

可以去除流中的重复元素
注意:distinct方法是依赖Object的equals方法来判断是否是相同对象的。所以需要注意重写equals方法 .

4.sorted

可以对流中的元素进行排序

5.limit

可以设置流的最大长度,超出的部分将被抛弃

6.skip

跳过流中的前n个元素,返回剩下的元素

7.flagMap

map只能把一个对象转换成另一个对象来作为流中的元素。而flagMap可以把一个对象转换成多个对象作为流中的元素。

四.stram流之终结操作

1.forEach

对流中的元素进行遍历操作,我们通过传入的参数去指定对遍历到的元素进行什么具体操作。

2.count

可以用来获取当前流中元素的个数

3.max&min

可以用来获得流中的最值

4.collect

把当前流做换成一个集合,通常用来收集流
在这里插入图片描述

五.查找与匹配

1.anyMatch

可以用来判断是否有任意符合匹配条件的元素,结果为boolean类型。

2.allMatch

可以用来判断是否都符合匹配条件,结果为boolean类型。如果都符合结果为true,否则结果为false。

3.noneMatch

可以判断流中的元素是否都不符合匹配条件。如果都不符合结果为true,否则为false。

4.findAny

获取流中的任意一个元素。该方法没有办法保证获取的一定是流中的第一个元素。

5.findFirst

获取流中的第一个元素

6.reduce归并

对流中的数据按照你指定的计算方式计算出一个结果。
reduce的作用是把stream中的元素给组合起来,我们可以传入一个初始值,它会按照我们的计算方式依次拿流中的元素和在初始化值的基础上进行计算,计算结果再和后面的元素计算。

六.并行流

当流中有大量元素时,我们可以使用并行流去提高操作的效率。其实并行流就是把任务分配给多个线程去完成。如果我们自己用代码实现的话会非常复杂,并且要求对并发编程有足够的理解和认识。而如果我们使用stream的话,我们只需要修改一个方法的调用就可以使用并行流来帮我们实现,从而提高效率。

流对象.parallel()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值