支持顺序和并行聚合操作的一系列元素。
看一个JAVA 8_API(地址:https://www.matools.com/api/java8)的示例:
int sum = widgets.stream()
.filter(w -> w.getColor() == RED)
.mapToInt(w -> w.getWeight())
.sum();分析:widgets
是Collection<Widget>,通过
Collection.stream()
创建一个Widget
对象的流,.filter()——
过滤这个流以产生仅包含红色小部件的流(这个过滤,我觉得换成保留较好,
filter()
就是保留满足方法内条件的数据),然后过滤保留后的值,通过mapToInt方法转换为表示每个红色小部件的权重的
int
值。 然后将该流相加以产生总重量。
除了Stream
,其为对象引用的流,存在原语特为IntStream
,LongStream
和DoubleStream
,所有这些都称为“流”和符合此处描述的特征和限制。