Stream操作
流式操作,主要对数组,集合中的大量数据进行高效的处理。
提供了以下特性:
1. 不会修改stream源中的数据,只是得到新的数据
2. 懒计算,惰性求值,只有在最后进行终端操作才会开始处理数据,执行流的中间操作。
3. 并行处理,stream API等充分利用多核处理器,提供性能。
语法特性:
源 -> 中间操作 -> ... -> 中间操作 -> 终端操作
创建stream对象
主要从 集合、数组、或者参数生成的方式生成流。
collection.stream() 或者 collection.parallelStream
Arrays.stream( T[] arr) 或者 Stream.of(T... arr)
Stream.builder().accept( content ).accept(...).builde()
或者生成
Stream.generate( () -> { return content; }).limit( times );使用limit限制生成的元素个数。
Stream.iterate(T seed, UnaryOperator<T> f)