Java - 函数式编程(2):常用的流操作

20 篇文章 0 订阅

流操作: 即stream接口针对于集合类提供的操作。集合类.stream()集合获取到stream(流),随之进行自己想要的操作。

  • filter():按照一定条件过滤集合的元素 。
    list.stream().filter(x -> x > 5);
    像filter()这类返回值为Stream的方法,它其实只是刻画出了stream,并没有产生新的集合,也就是按照规则构造出Stream流其他的都没有做,这类叫惰性求值方法。
  • count():求集合的size.    
    list.stream().filter(x -> x > 5).count();
      #像count()这类有不同返回值的,它们会执行语句,从stream中产生值返回,这类叫做及早求值方法。
  • collect(Collectors.toList()):返回新的list集合。
    
    list.stream().filter(x -> x > 5).collect(Collectors.toList());

     

  • map():将一个流中的值转换成另外的值。
    list1.stream().map(x -> x.toUpperCase())

     

  • flatMap:将一个或多个流转换成一个新流。
    Stream.of(list1, list).flatMap(x -> x.stream()).collect(Collectors.toList());

     

  • max,min:取集合的最大、最小值,需传入一个Comparator.  
    list.stream().max(Comparator.comparing(x -> x)).get()

     

Stream 接口的方法不少,实际运用起来不是简单的几个API,需要多个方法配合使用,所以要了解这些方法的作用,熟悉他们的运用,才能实际代码中派上用场。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值