java8的stream与InputStream和OutputStream是完全不同的概念,stream是用于对集合迭代器的增强,使之完成能够完成更高下搜的聚合操作(过滤、排序、统计分组)或者大批量数据操作。此外stream与lambda表达式结合后编码效率提高,并且可读性更强。
流的操作特性
- 中间操作(intermediate):调用中间操作方法回返回一个新的流。通过连续执行多个操作就组成了stream中的执行管道(pipeline)。需要注意的是这些管道被添加后并不会真正执行,只有等到调用终值操作之后才会执行;中间操作是惰性的;中间操作有多次;例如:filter()
- 终值操作(terminal):在调用该方法后,将执行之前所有的中间操作,获返回结果结束对流的使用;终值操作只能有一次,并且只能在流最后;例如:collect()
stream流中:方法返回值是stream
流的执行顺序说明:其每个元素挨着作为参数去调用中间操作及终值操作。而不是遍历完一个方法,再遍历下一个方法;
stream流并发执行