Package it.tidalwave.util
Class Pair<A,B>
java.lang.Object
it.tidalwave.util.Pair<A,B>
A value object that contains a pair of values. Some factory methods allow creating pairs out of existing collections
or arrays associating an index.
- Since:
- 3.2-ALPHA-6
- Author:
- Fabrizio Giudici
- Status: draft API
-
Field Summary
Modifier and TypeFieldDescriptionfinal A
final B
static final IntUnaryOperator
A base 0 index rebaser.static final IntUnaryOperator
A base 1 index rebaser. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionindexedPairStream
(int from, int to, IntFunction<? extends T> valueSupplier) indexedPairStream
(int from, int to, IntFunction<? extends T> valueSupplier, IntUnaryOperator rebaser) indexedPairStream
(int from, int to, IntFunction<? extends T> valueSupplier, IntUnaryOperator rebaser, IntFunction<? extends I> indexTransformer) indexedPairStream
(Iterable<? extends T> iterable) indexedPairStream
(Iterable<? extends T> iterable, IntFunction<? extends I> indexTransformer) indexedPairStream
(Iterable<? extends T> iterable, IntUnaryOperator rebaser) indexedPairStream
(Iterable<? extends T> iterable, IntUnaryOperator rebaser, IntFunction<? extends I> indexTransformer) indexedPairStream
(Stream<? extends T> stream) indexedPairStream
(Stream<? extends T> stream, IntFunction<? extends I> indexTransformer) indexedPairStream
(Stream<? extends T> stream, IntUnaryOperator rebaser) indexedPairStream
(Stream<? extends T> stream, IntUnaryOperator rebaser, IntFunction<? extends I> indexTransformer) indexedPairStream
(T[] array) indexedPairStream
(T[] array, IntFunction<? extends I> indexTransformer) indexedPairStream
(T[] array, IntUnaryOperator rebaser) indexedPairStream
(T[] array, IntUnaryOperator rebaser, IntFunction<? extends I> indexTransformer) pairRange
(T value, int from, int to) Creates aStream
ofPair
s composed of a given fixed value and an integer in the given range.pairRangeClosed
(T value, int from, int to) Creates aStream
ofPair
s composed of a given fixed value and an integer in the given range.pairStream
(T value, Stream<? extends U> stream) Zips two streams into a stream ofPair
s.
-
Field Details
-
BASE_0
A base 0 index rebaser. -
BASE_1
A base 1 index rebaser. -
a
-
b
-
-
Constructor Details
-
Pair
public Pair()
-
-
Method Details
-
pairStream
@Nonnull public static <T,U> Stream<Pair<T,U>> pairStream(@Nonnull T value, @Nonnull Stream<? extends U> stream) Creates aStream
ofPair
s composed of a given fixed value and another element taken from anotherStream
.- Type Parameters:
T
- the type of the valueU
- the type of theStream
- Parameters:
value
- the valuestream
- theStream
- Returns:
- the
Stream
ofPair
s - Since:
- 3.2-ALPHA-12
-
pairRange
@Nonnull public static <T> Stream<Pair<T,Integer>> pairRange(@Nonnull T value, @Nonnegative int from, @Nonnegative int to) Creates aStream
ofPair
s composed of a given fixed value and an integer in the given range.- Type Parameters:
T
- the type of the value- Parameters:
value
- the valuefrom
- the first value of the integerStream
(included)to
- the last value of the integerStream
(excluded)- Returns:
- the
Stream
ofPair
s - Since:
- 3.2-ALPHA-12
-
pairRangeClosed
@Nonnull public static <T> Stream<Pair<T,Integer>> pairRangeClosed(@Nonnull T value, @Nonnegative int from, @Nonnegative int to) Creates aStream
ofPair
s composed of a given fixed value and an integer in the given range.- Type Parameters:
T
- the type of the value- Parameters:
value
- the valuefrom
- the first value of the integerStream
(included)to
- the last value of the integerStream
(included)- Returns:
- the
Stream
ofPair
s - Since:
- 3.2-ALPHA-12
-
indexedPairStream
- Type Parameters:
T
- the type of the elements- Parameters:
array
- the array- Returns:
- the stream
-
indexedPairStream
@Nonnull public static <T> Stream<Pair<Integer,T>> indexedPairStream(@Nonnull T[] array, @Nonnull IntUnaryOperator rebaser) Returns aStream
out of the elements in the array, made ofPair
s(index, value)
. The index can be rebased.- Type Parameters:
T
- the type of the elements- Parameters:
array
- the arrayrebaser
- the rebaser of the index (BASE_0, BASE_1 or a similar function)- Returns:
- the stream
-
indexedPairStream
@Nonnull public static <I,T> Stream<Pair<I,T>> indexedPairStream(@Nonnull T[] array, @Nonnull IntFunction<? extends I> indexTransformer) Returns aStream
out of the elements in a given array made ofPair
s(index, value)
. The index is transformed with the given function.- Type Parameters:
I
- the type of the transformed indexT
- the type of the elements- Parameters:
array
- the arrayindexTransformer
- the transformer of the index- Returns:
- the stream
-
indexedPairStream
@Nonnull public static <T,I> Stream<Pair<I,T>> indexedPairStream(@Nonnull T[] array, @Nonnull IntUnaryOperator rebaser, @Nonnull IntFunction<? extends I> indexTransformer) Returns aStream
out of the elements in the array, made ofPair
s(index, value)
. The index can be rebased and transformed with specific functions.- Type Parameters:
T
- the type of the elementsI
- the type of the transformed index- Parameters:
array
- the arrayrebaser
- the rebaser of the index (BASE_0, BASE_1 or a similar function)indexTransformer
- the transformer of the index- Returns:
- the stream
-
indexedPairStream
@Nonnull public static <T> Stream<Pair<Integer,T>> indexedPairStream(@Nonnull Iterable<? extends T> iterable) - Type Parameters:
T
- the type of the elements- Parameters:
iterable
- the iterable- Returns:
- the stream
-
indexedPairStream
@Nonnull public static <T> Stream<Pair<Integer,T>> indexedPairStream(@Nonnull Iterable<? extends T> iterable, @Nonnull IntUnaryOperator rebaser) Returns aStream
out of the elements in a givenIterable
made ofPair
s(index, value)
. The index can be rebased.- Type Parameters:
T
- the type of the elements- Parameters:
iterable
- the iterablerebaser
- the rebaser of the index (BASE_0, BASE_1 or a similar function)- Returns:
- the stream
-
indexedPairStream
@Nonnull public static <I,T> Stream<Pair<I,T>> indexedPairStream(@Nonnull Iterable<? extends T> iterable, @Nonnull IntFunction<? extends I> indexTransformer) Returns aStream
out of the elements in a givenIterable
made ofPair
s(index, value)
. The index is transformed with the given function.- Type Parameters:
I
- the type of the transformed indexT
- the type of the elements- Parameters:
iterable
- the iterableindexTransformer
- the transformer of the index- Returns:
- the stream
-
indexedPairStream
@Nonnull public static <I,T> Stream<Pair<I,T>> indexedPairStream(@Nonnull Iterable<? extends T> iterable, @Nonnull IntUnaryOperator rebaser, @Nonnull IntFunction<? extends I> indexTransformer) Returns aStream
out of the elements returned by an iterable, made ofPair
s(index, value)
. The index is rebased and transformed with specific functions.- Type Parameters:
I
- the type of the transformed indexT
- the type of the elements- Parameters:
iterable
- the iterablerebaser
- the rebaser of the index (BASE_0, BASE_1 or a similar function)indexTransformer
- the transformer of the index- Returns:
- the stream
-
indexedPairStream
@Nonnull public static <T> Stream<Pair<Integer,T>> indexedPairStream(@Nonnull Stream<? extends T> stream) - Type Parameters:
T
- the type of the elements- Parameters:
stream
- the stream- Returns:
- the stream
- Since:
- 3.2-ALPHA-12
-
indexedPairStream
@Nonnull public static <T> Stream<Pair<Integer,T>> indexedPairStream(@Nonnull Stream<? extends T> stream, @Nonnull IntUnaryOperator rebaser) Returns aStream
out of the elements in a givenStream
made ofPair
s(index, value)
. The index can be rebased.- Type Parameters:
T
- the type of the elements- Parameters:
stream
- the streamrebaser
- the rebaser of the index (BASE_0, BASE_1 or a similar function)- Returns:
- the stream
- Since:
- 3.2-ALPHA-12
-
indexedPairStream
@Nonnull public static <I,T> Stream<Pair<I,T>> indexedPairStream(@Nonnull Stream<? extends T> stream, @Nonnull IntFunction<? extends I> indexTransformer) Returns aStream
out of the elements in a givenStream
made ofPair
s(index, value)
. The index is transformed with the given function.- Type Parameters:
I
- the type of the transformed indexT
- the type of the elements- Parameters:
stream
- the streamindexTransformer
- the transformer of the index- Returns:
- the stream
- Since:
- 3.2-ALPHA-12
-
indexedPairStream
@Nonnull public static <I,T> Stream<Pair<I,T>> indexedPairStream(@Nonnull Stream<? extends T> stream, @Nonnull IntUnaryOperator rebaser, @Nonnull IntFunction<? extends I> indexTransformer) Returns aStream
out of the elements returned by a Stream, made ofPair
s(index, value)
. The index is rebased and transformed with specific functions.- Type Parameters:
I
- the type of the transformed indexT
- the type of the elements- Parameters:
stream
- the streamrebaser
- the rebaser of the index (BASE_0, BASE_1 or a similar function)indexTransformer
- the transformer of the index- Returns:
- the stream
- Since:
- 3.2-ALPHA-12
-
indexedPairStream
@Nonnull public static <T> Stream<Pair<Integer,T>> indexedPairStream(@Nonnegative int from, @Nonnegative int to, @Nonnull IntFunction<? extends T> valueSupplier) - Type Parameters:
T
- the type of the elements- Parameters:
from
- the first index (included)to
- the last index (excluded)valueSupplier
- the supplier of values- Returns:
- the stream
-
indexedPairStream
@Nonnull public static <T> Stream<Pair<Integer,T>> indexedPairStream(@Nonnegative int from, @Nonnegative int to, @Nonnull IntFunction<? extends T> valueSupplier, @Nonnull IntUnaryOperator rebaser) - Type Parameters:
T
- the type of the elements- Parameters:
from
- the first index (included)to
- the last index (excluded)valueSupplier
- the supplier of valuesrebaser
- the rebaser of the index (BASE_0, BASE_1 or a similar function)- Returns:
- the stream
-
indexedPairStream
@Nonnull public static <T,I> Stream<Pair<I,T>> indexedPairStream(@Nonnegative int from, @Nonnegative int to, @Nonnull IntFunction<? extends T> valueSupplier, @Nonnull IntUnaryOperator rebaser, @Nonnull IntFunction<? extends I> indexTransformer) Returns aStream
out of the elements returned by a supplier, made ofPair
s(index, value)
. The index can be rebased and transformed with specific functions.- Type Parameters:
T
- the type of the elementsI
- the type of the transformed index- Parameters:
from
- the first index (included)to
- the last index (excluded)valueSupplier
- the supplier of valuesrebaser
- the rebaser of the index (BASE_0, BASE_1 or a similar function)indexTransformer
- the transformer of the index- Returns:
- the stream
-
pairsToMap
ACollector
that produces aMap
whose key is fielda
and value fieldb
. Use withStream.collect(Collector)
.- Type Parameters:
A
- the type of the former element of the pairB
- the type of the latter element of the pair- Returns:
- the
Collector
-
zip
@Nonnull public static <A,B> Stream<Pair<A,B>> zip(@Nonnull Stream<? extends A> streamA, @Nonnull Stream<? extends B> streamB) Zips two streams into a stream ofPair
s.
-