Interface Traversable<T>
- Type Parameters:
T
-
Traversable contains two type of operations:
- Intermediate operations which transform a traversable, into another,
e.g.
filter(Predicate)
. - Terminal operations which produce a side effect, e.g.
forEach(Consumer)
. Once a terminal operation is completed, the resources taken by the traversable are released.
Traversable cannot be reused and hence is designed to be used only once via its intermediate and terminal operations.
In distributed environments, unless individually specified, all lambdas
passed to methods are executed where data is located. For example, if
executing forEach(Consumer)
, the Consumer
function is
executed wherever a particular key resides. To execute a for-each operation
where the side effects are executed locally, all the Traversable
's
data needs to be collected and iterated over manually.
- Since:
- 8.0
-
Method Summary
Modifier and TypeMethodDescriptionboolean
A terminal operation that returns whether all elements of this traversable match the provided predicate.boolean
A terminal operation that returns whether any elements of this traversable match the provided predicate.<R> R
collect
(Supplier<R> s, BiConsumer<R, ? super T> accumulator, BiConsumer<R, R> combiner) A terminal operation that transforms the traversable into a result container, first constructed with the given supplier, and then accumulating elements over it with the given consumer.<R,
A> R A terminal operation that transforms the traversable into a result container using aCollector
.long
count()
A terminal operation that returns the number of elements in the traversable.An intermediate operation that returns a traversable containing elements matching the given predicate.findAny()
A terminal operation that returns an optional containing an element of the traversable, or an empty optional if empty.<R> Traversable<R>
flatMap
(Function<? super T, ? extends Traversable<? extends R>> f) An intermediate operation that returns a traversable containing the results of replacing each element of this traversable with the contents of a traversable produced by applying the provided function to each element.void
A terminal operation that applies an operation to all elements of this traversable.<R> Traversable<R>
An intermediate operation that returns a traversable containing the results of applying the given function over the elements of the traversable.max
(Comparator<? super T> comparator) A terminal operation that returns an optional containing the maximum element of this traversable based on the comparator passed in.min
(Comparator<? super T> comparator) A terminal operation that returns an optional containing the minimum element of this traversable based on the comparator passed in.boolean
A terminal operation that returns whether no elements of this traversable match the provided predicate.reduce
(BinaryOperator<T> folder) A terminal operation that applies a binary folding operation to all elements of this traversable, and wraps the result in an optional.reduce
(T z, BinaryOperator<T> folder) A terminal operation that applies a binary folding operation to a start value and all elements of this traversable.<U> U
reduce
(U z, BiFunction<U, ? super T, U> mapper, BinaryOperator<U> folder) A terminal operation that applies a binary folding operation to a start value and the result of each element having a mapping function applied.
-
Method Details
-
filter
An intermediate operation that returns a traversable containing elements matching the given predicate. -
map
An intermediate operation that returns a traversable containing the results of applying the given function over the elements of the traversable. -
flatMap
An intermediate operation that returns a traversable containing the results of replacing each element of this traversable with the contents of a traversable produced by applying the provided function to each element.From a functional map perspective, this operation is particularly handy when the values are collections.
-
forEach
A terminal operation that applies an operation to all elements of this traversable. -
reduce
A terminal operation that applies a binary folding operation to a start value and all elements of this traversable. -
reduce
A terminal operation that applies a binary folding operation to all elements of this traversable, and wraps the result in an optional. If the traversable is empty, it returns an empty optional. -
reduce
A terminal operation that applies a binary folding operation to a start value and the result of each element having a mapping function applied.This is a combined map/reduce which could potentially be done more efficiently than if a map is executed and then reduce.
-
collect
A terminal operation that transforms the traversable into a result container, first constructed with the given supplier, and then accumulating elements over it with the given consumer.The combiner can be used to combine accumulated results executed in parallel or coming from different nodes in a distributed environment.
In distributed environments where some keys are remote, the
Supplier
andBiConsumer
instances passed in are sent to other nodes and hence they need to be marshallable. If the collect operation can be defined using the helper methods inCollectors
, it is recommended that those are used, which can easily be made marshalled using theorg.infinispan.stream.CacheCollectors#serializableCollector
method. -
collect
A terminal operation that transforms the traversable into a result container using aCollector
.In distributed environments where some keys are remote, the
Collector
instance passed in is sent other nodes and hence it needs to be marshallable. This can easily be made achieved using theorg.infinispan.stream.CacheCollectors#serializableCollector
method. -
min
A terminal operation that returns an optional containing the minimum element of this traversable based on the comparator passed in. If the traversable is empty, it returns an empty optional. -
max
A terminal operation that returns an optional containing the maximum element of this traversable based on the comparator passed in. If the traversable is empty, it returns an empty optional. -
count
long count()A terminal operation that returns the number of elements in the traversable. -
anyMatch
A terminal operation that returns whether any elements of this traversable match the provided predicate.An important reason to keep this method is the fact as opposed to a reduction which must evaluate all elements in the traversable, this method could stop as soon as it has found an element that matches.
-
allMatch
A terminal operation that returns whether all elements of this traversable match the provided predicate.An important reason to keep this method is the fact as opposed to a reduction which must evaluate all elements in the traversable, this method could stop as soon as it has found an element that does not match the predicate.
-
noneMatch
A terminal operation that returns whether no elements of this traversable match the provided predicate.An important reason to keep this method is the fact as opposed to a reduction which must evaluate all elements in the traversable, this method could stop as soon as it has found an element that does matches the predicate.
-
findAny
A terminal operation that returns an optional containing an element of the traversable, or an empty optional if empty.
-