Stream常见操作API介绍

Stream常见操作API介绍

1、聚合操作

2、stream的处理流程

 数据源    
 数据转换
 获取结果

3、获取Stream对象

1. 从集合后数组对象中获取
Collection.stream()
Colleatcion.parallelStream()
Array.stream(T t)
2. BufferReader
BufferReader.lines() -> stream()
3. 静态工厂
 java.util.stream.IntStream.range()..
 java.nio.file.Files.walk()..
4. 自定构建
 java.util.Spliterator
5. 更多
 Random,ints()
 Pattern.splitAsStream()..

4、中间操作API(intermediate)

 操作结果是一个stream,中间操作可以有一个或多个连续的中间操作,需要注意的是,中间操作
 只记录操作方式,不做具体处理,直到结束操作发生时,操作数据的最终执行
 中间操作:就是业务逻辑处理
 中间操作过程:
        无状态:数据处理时,不受前置中间操作的影响
                  map/filter/peek/pasallel/sequential/unordered
       有状态:数据处理时,收到前置中间操作的影响
                  distinct/sorted/limit/skip

5、终结操作\结束操作(Terminal)

 需要注意:一个stream对象,只能有一个Terminal操作,这个操作一旦发生,就会真是处理数据
 终结操作:
            非短路操作:当前的Stream对象必须处理完集合的所有数据,才能的到处理结果
                        forEach/forEachOrdered/toArray/reduce/collect/min/max/count/iterator
            短路操作:当前的Stream对象必须在处理过程中,一旦满足某个条件,就可以得到结果
                        anyMatch/allMatch/noneMatch/findFirst/findAny等
            Short-circuiting,当无限大的Stream -> 有限大的Stream,可以使用短路操作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章