java8 StreamApi 结束操作篇

注意:流进行了终止操作后,不能再次使用

1.查找与匹配
  • allMatch——检查是否匹配所有元素
  • anyMatch——检查是否至少匹配一个元素
  • noneMatch——检查是否没有匹配的元素
  • findFirst——返回第一个元素
  • findAny——返回当前流中的任意元素
  • count——返回流中元素的总个数
  • max——返回流中最大值
  • min——返回流中最小值
    这个太简单,不用举例子了。
2.归约:

reduce(T identity, BinaryOperator) / reduce(BinaryOperator) ——可以将流中元素反复结合起来,得到一个值。
例子:

public void test1(){
    List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
    Integer sum = list.stream().reduce(0, (x, y) -> x + y);
    System.out.println(sum);
    
    Optional<Double> op = emps.stream().map(Employee::getSalary).reduce(Double::sum);
    System.out.println(op.get());
}
3.收集:

collect——将流转换为其他形式。接收一个 Collector接口的实现,用于给Stream中元素做汇总的方法。

  public void test3(){
    List<String> list = emps.stream().map(Person::getName).collect(Collectors.toList());
    list.forEach(System.out::println);
    
    Set<String> set = emps.stream().map(Person::getName).collect(Collectors.toSet());
    set.forEach(System.out::println);

    HashSet<String> hs = emps.stream().map(Person::getName).collect(Collectors.toCollection(HashSet::new));
    hs.forEach(System.out::println);
}

####### Collectors类中提供了很多有效的静态方法:

1
2
4.分组:反正操作就跟操作SQL一样,不多做解释了
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java8 in action 没有共享的可变数据,将方法和函数即代码传递给其他方法的能力就是我们平常所说的函数式...
    铁牛很铁阅读 5,011评论 1 2
  • 了解Stream ​ Java8中有两个最为重要的改变,一个是Lambda表达式,另一个就是Stream AP...
    龙历旗阅读 8,578评论 3 4
  • Int Double Long 设置特定的stream类型, 提高性能,增加特定的函数 无存储。stream不是一...
    patrick002阅读 5,016评论 0 0
  • 第一章 为什么要关心Java 8 使用Stream库来选择最佳低级执行机制可以避免使用Synchronized(同...
    谢随安阅读 5,357评论 0 4
  • 一天又过去了, 算了算今天, “认识”有11天了。 犹记得11天前晚上我一人饮酒醉🤒。 这短时间很漫长。 有时候感...
    叶三双阅读 1,365评论 0 1