Package one.util.streamex
Class CollapseSpliterator<T,R>
- java.lang.Object
-
- one.util.streamex.Internals.Box<T>
-
- one.util.streamex.CollapseSpliterator<T,R>
-
- All Implemented Interfaces:
java.util.function.Consumer<T>
,java.util.Spliterator<R>
final class CollapseSpliterator<T,R> extends Internals.Box<T> implements java.util.Spliterator<R>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
CollapseSpliterator.Connector<T,R>
-
Nested classes/interfaces inherited from interface java.util.Spliterator
java.util.Spliterator.OfDouble, java.util.Spliterator.OfInt, java.util.Spliterator.OfLong, java.util.Spliterator.OfPrimitive<T extends java.lang.Object,T_CONS extends java.lang.Object,T_SPLITR extends java.util.Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>>
-
-
Field Summary
Fields Modifier and Type Field Description private R
acc
private java.util.function.BiFunction<R,T,R>
accumulator
private java.util.function.BinaryOperator<R>
combiner
(package private) CollapseSpliterator.Connector<T,R>
left
private java.util.function.Function<T,R>
mapper
private java.util.function.BiPredicate<? super T,? super T>
mergeable
(package private) CollapseSpliterator.Connector<T,R>
right
private CollapseSpliterator<T,R>
root
private java.util.Spliterator<T>
source
-
Fields inherited from class one.util.streamex.Internals.Box
a
-
-
Constructor Summary
Constructors Modifier Constructor Description (package private)
CollapseSpliterator(java.util.function.BiPredicate<? super T,? super T> mergeable, java.util.function.Function<T,R> mapper, java.util.function.BiFunction<R,T,R> accumulator, java.util.function.BinaryOperator<R> combiner, java.util.Spliterator<T> source)
private
CollapseSpliterator(CollapseSpliterator<T,R> root, java.util.Spliterator<T> source, CollapseSpliterator.Connector<T,R> left, CollapseSpliterator.Connector<T,R> right)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
accept(R acc, java.util.function.Consumer<? super R> action)
int
characteristics()
private R
connectEmpty()
private R
connectOne(T first, R acc, T last)
long
estimateSize()
void
forEachRemaining(java.util.function.Consumer<? super R> action)
private R
handleLeft()
private R
pushLeft(T first, R acc)
private R
pushRight(R acc, T last)
boolean
tryAdvance(java.util.function.Consumer<? super R> action)
java.util.Spliterator<R>
trySplit()
-
Methods inherited from class one.util.streamex.Internals.Box
accept, asOptional, partialCollector
-
-
-
-
Field Detail
-
source
private final java.util.Spliterator<T> source
-
root
private final CollapseSpliterator<T,R> root
-
acc
private R acc
-
left
volatile CollapseSpliterator.Connector<T,R> left
-
right
volatile CollapseSpliterator.Connector<T,R> right
-
combiner
private final java.util.function.BinaryOperator<R> combiner
-
-
Constructor Detail
-
CollapseSpliterator
CollapseSpliterator(java.util.function.BiPredicate<? super T,? super T> mergeable, java.util.function.Function<T,R> mapper, java.util.function.BiFunction<R,T,R> accumulator, java.util.function.BinaryOperator<R> combiner, java.util.Spliterator<T> source)
-
CollapseSpliterator
private CollapseSpliterator(CollapseSpliterator<T,R> root, java.util.Spliterator<T> source, CollapseSpliterator.Connector<T,R> left, CollapseSpliterator.Connector<T,R> right)
-
-
Method Detail
-
tryAdvance
public boolean tryAdvance(java.util.function.Consumer<? super R> action)
- Specified by:
tryAdvance
in interfacejava.util.Spliterator<T>
-
forEachRemaining
public void forEachRemaining(java.util.function.Consumer<? super R> action)
- Specified by:
forEachRemaining
in interfacejava.util.Spliterator<T>
-
handleLeft
private R handleLeft()
-
connectEmpty
private R connectEmpty()
-
trySplit
public java.util.Spliterator<R> trySplit()
- Specified by:
trySplit
in interfacejava.util.Spliterator<T>
-
estimateSize
public long estimateSize()
- Specified by:
estimateSize
in interfacejava.util.Spliterator<T>
-
characteristics
public int characteristics()
- Specified by:
characteristics
in interfacejava.util.Spliterator<T>
-
-