@Override public Spliterator<R> copy() { return new ZippingSpliterator(CopyableSpliterator.copy(left), CopyableSpliterator.copy(right),fn); }
@Override public void forEachRemaining(Consumer<? super R> action) { if(hasCharacteristics(SIZED)) { if(left.getExactSizeIfKnown() < right.getExactSizeIfKnown()){ left.forEachRemaining(l -> { right.tryAdvance(r -> { action.accept(fn.apply(l, r)); }); }); }else { right.forEachRemaining(r -> { left.tryAdvance(l -> { action.accept(fn.apply(l, r)); }); }); } }else{ CopyableSpliterator.super.forEachRemaining(action); return; } }
@Override public final <U, R> ReactiveSeq<R> zipWithStream(final Stream<? extends U> other, final BiFunction<? super T, ? super U, ? extends R> zipper){ return createSeq( new ZippingSpliterator<>(get(),other.spliterator(),zipper)); } @Override
@Override public void forEachRemaining(Consumer<? super R> action) { if(hasCharacteristics(SIZED)) { if(left.getExactSizeIfKnown() < right.getExactSizeIfKnown()){ left.forEachRemaining(l -> { right.tryAdvance(r -> { action.accept(fn.apply(l, r)); }); }); }else { right.forEachRemaining(r -> { left.tryAdvance(l -> { action.accept(fn.apply(l, r)); }); }); } }else{ CopyableSpliterator.super.forEachRemaining(action); return; } }
public <R2> ZippingSpliterator<T1,T2,R2> compose(Function<? super R,? extends R2> fn){ return new ZippingSpliterator<>(CopyableSpliterator.copy(left),CopyableSpliterator.copy(right), this.fn.andThen(fn)); }
@Override public final <S> ReactiveSeq<Tuple2<T, S>> zipWithStream(final Stream<? extends S> second) { return createSeq( new ZippingSpliterator<>(get(),second.spliterator(),(a, b) -> new Tuple2<>( a, b))); } @Override
@Override public Spliterator<R> copy() { return new ZippingSpliterator(CopyableSpliterator.copy(left), CopyableSpliterator.copy(right),fn); }
@Override public final <U, R> ReactiveSeq<R> zipWithStream(final Stream<? extends U> other, final BiFunction<? super T, ? super U, ? extends R> zipper){ return createSeq( new ZippingSpliterator<>(get(),other.spliterator(),zipper)); } @Override
public <R2> ZippingSpliterator<T1,T2,R2> compose(Function<? super R,? extends R2> fn){ return new ZippingSpliterator<>(CopyableSpliterator.copy(left),CopyableSpliterator.copy(right), this.fn.andThen(fn)); }
@Override public final <S> ReactiveSeq<Tuple2<T, S>> zipWithStream(final Stream<? extends S> second) { return createSeq( new ZippingSpliterator<>(get(),second.spliterator(),(a, b) -> new Tuple2<>( a, b))); } @Override