首页 > 其他 > 详细

Stream的操作

时间:2019-09-18 00:46:35      阅读:83      评论:0      收藏:0      [点我收藏+]

中间操作

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的操作

原文:https://www.cnblogs.com/flying-snake/p/11537996.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!