Stream的操作
Posted flying-snake
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stream的操作相关的知识,希望对你有一定的参考价值。
中间操作
map()
返回一个流,当中包含了将给定函数应用到当前流中的每一个元素后返回的结果。
只有一种实现,在 ReferencePipeline 中定义
创建一个 StatelessOp(ReferencePipeline 的内部类),重写 opWrapSink(定义在 AbstractPipeline 中) 方法后返回
opWrapSink 方法创建 Sink.ChainedReference,重写 accept 方法,并返回
public final <R> Stream<R> map(Function<? super P_OUT, ? extends R> mapper) { Objects.requireNonNull(mapper); return new StatelessOp<P_OUT, R>(this, StreamShape.REFERENCE, StreamOpFlag.NOT_SORTED | StreamOpFlag.NOT_DISTINCT) { @Override Sink<P_OUT> opWrapSink(int flags, Sink<R> sink) { return new Sink.ChainedReference<P_OUT, R>(sink) { @Override public void accept(P_OUT u) { downstream.accept(mapper.apply(u)); } }; } }; }
以上是关于Stream的操作的主要内容,如果未能解决你的问题,请参考以下文章