java8 stream api流式编程

💛完整源码,请帮我点个star哦!
💛原文地址为https://www.cnblogs.com/haixiang/p/14291626.html,转载请注明出处!

java8自带常用的函数式接口

  • Predicate boolean test(T t) 传入一个参数返回boolean值
  • Consumer void accept(T t) 传入一个参数,无返回值
  • Function<T,R> R apply(T t) 传入一个参数,返回另一个类型

准备数据

常用的stream三种创建方式

  • 集合 Collection.stream()
  • 静态方法 Stream.of
  • 数组 Arrays.stream

Stream的终止操作

  • foreach(Consumer c) 遍历操作
  • collect(Collector) 将流转化为其他形式
  • max(Comparator) 返回流中最大值
  • min(Comparator) 返回流中最小值
  • count 返回流中元素综述

Collectors 具体方法

  • toList List 把流中元素收集到List
  • toSet Set 把流中元素收集到Set
  • toCollection Coolection 把流中元素收集到Collection中
  • groupingBy Map<K,List> 根据K属性对流进行分组
  • partitioningBy Map<boolean, List> 根据boolean值进行分组

Stream的中间操作

1.filter(Predicate) 筛选流中某些元素

2.map(Function f) 接收流中元素,并且将其映射成为新元素,例如从student对象中取name属性

 

3.flatMap(Function f) 将所有流中的元素并到一起连接成一个流

4.peek(Consumer c) 获取流中元素,操作流中元素,与foreach不同的是不会截断流,可继续操作流

5.distinct() 通过流所生成元素的equals和hashCode去重

6.limit(long val) 截断流,取流中前val个元素

7 sorted(Comparator) 产生一个新流,按照比较器规则排序

8 sorted() 产生一个新流,按照自然顺序排序

匹配

  1. booelan allMatch(Predicate) 都符合
  2. .boolean anyMatch(Predicate) 任一元素符合
  3. boolean noneMatch(Predicate) 都不符合

寻找元素

  1. findFirst——返回第一个元素
  2. findAny——返回当前流中的任意元素

计数和极值

  1. count——返回流中元素的总个数
  2. max——返回流中最大值
  3. min——返回流中最小值

作者: 海向

出处:https://www.cnblogs.com/haixiang/p/14291626.html

本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值