💛完整源码,请帮我点个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() 产生一个新流,按照自然顺序排序
匹配
- booelan allMatch(Predicate) 都符合
- .boolean anyMatch(Predicate) 任一元素符合
- boolean noneMatch(Predicate) 都不符合
寻找元素
- findFirst——返回第一个元素
- findAny——返回当前流中的任意元素
计数和极值
- count——返回流中元素的总个数
- max——返回流中最大值
- min——返回流中最小值
作者: 海向
出处:https://www.cnblogs.com/haixiang/p/14291626.html
本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。