Java Stream

Stream虽然继承了AutoCloseable接口,但是不会自动close,除非在try-with-resource里面
  • Stream
每次中间操作都会返回一个新的stream
flatMap在执行一次之后会关闭stream
  • 将其他类型转换成stream流
第一种:
List<String> collection = new ArrayList<>();
collection.stream();

第二种:
String[] array = {"1"};
Arrays.stream(array);  
       
第三种:        
Stream.of(new Object());  对象
Stream.of(1 ,2 ,3);  可变参数
Stream.of(array);  数组
  • 创建无穷Stream
generate(Supplier<T> s)
iterate(起始值,Function<T> f)
Stream<String> echos = Stream.generate(() -> "echo");
Stream<Integer> integers = Stream.iterate(0, num -> num + 1);

但是这些都是中间操作,不会真的被执行,直到遇到终端操作
第一次不会执行,直接返回起始值,所以假设 .limit(10),其实只执行了9次
中间操作包括:filter skip limit map 
  • Collector 和 Collectors 区别
Collector: 是一个 interface
Collectors: 是一个final class,工具类,通过静态方法生成各种常用的 Collector
collect() 操作会把其接收的元素聚集(aggregate)到一起
  • 方法引用
方法引用类别 举例
引用静态方法 Integer::sum
引用某个对象的实例方法 list::add
引用特定类型任意对象的实例方法 String::length
引用构造方法 HashMap::new
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,324评论 19 139
  • Java 8函数式编程学习笔记 author:Gavin date:2018/11/09 什么是函数式编程 在思考...
    安静点就睡吧阅读 5,049评论 0 10
  • 上篇是将符合条件的流元素加工后打印出来,这篇讲述如何收集起来。与上篇相比只有最后一个方法不一样 Collector...
    风骚无俩阅读 4,318评论 0 1
  • 简介 Stream流 是 JDK1.8 加入的新特性,Stream流跟I/O流不同,Stream流用于操作数据源(...
    tingshuo123阅读 3,823评论 0 0
  • 抒情文字真情感, 痴心爱人心声传。 美到极至难表现, ...
    太阳哥月亮妹阅读 1,885评论 2 6