Package io.vavr
Class Tuple2<T1,T2>
- java.lang.Object
-
- io.vavr.Tuple2<T1,T2>
-
- Type Parameters:
T1
- type of the 1st elementT2
- type of the 2nd element
public final class Tuple2<T1,T2> extends java.lang.Object implements Tuple, java.lang.Comparable<Tuple2<T1,T2>>, java.io.Serializable
A tuple of two elements which can be seen as cartesian product of two components.- See Also:
- Serialized Form
-
-
Method Summary
Modifier and Type Method Description T1
_1()
Getter of the 1st element of this tuple.T2
_2()
Getter of the 2nd element of this tuple.<T3> Tuple3<T1,T2,T3>
append(T3 t3)
Append a value to this tuple.<U> U
apply(java.util.function.BiFunction<? super T1,? super T2,? extends U> f)
Transforms this tuple to an object of type U.int
arity()
Returns the number of elements of this tuple.static <T1,T2>
java.util.Comparator<Tuple2<T1,T2>>comparator(java.util.Comparator<? super T1> t1Comp, java.util.Comparator<? super T2> t2Comp)
int
compareTo(Tuple2<T1,T2> that)
<T3> Tuple3<T1,T2,T3>
concat(Tuple1<T3> tuple)
Concat a tuple's values to this tuple.<T3,T4>
Tuple4<T1,T2,T3,T4>concat(Tuple2<T3,T4> tuple)
Concat a tuple's values to this tuple.<T3,T4,T5>
Tuple5<T1,T2,T3,T4,T5>concat(Tuple3<T3,T4,T5> tuple)
Concat a tuple's values to this tuple.<T3,T4,T5,T6>
Tuple6<T1,T2,T3,T4,T5,T6>concat(Tuple4<T3,T4,T5,T6> tuple)
Concat a tuple's values to this tuple.<T3,T4,T5,T6,T7>
Tuple7<T1,T2,T3,T4,T5,T6,T7>concat(Tuple5<T3,T4,T5,T6,T7> tuple)
Concat a tuple's values to this tuple.<T3,T4,T5,T6,T7,T8>
Tuple8<T1,T2,T3,T4,T5,T6,T7,T8>concat(Tuple6<T3,T4,T5,T6,T7,T8> tuple)
Concat a tuple's values to this tuple.boolean
equals(java.lang.Object o)
int
hashCode()
<U1,U2>
Tuple2<U1,U2>map(java.util.function.BiFunction<? super T1,? super T2,Tuple2<U1,U2>> mapper)
Maps the components of this tuple using a mapper function.<U1,U2>
Tuple2<U1,U2>map(java.util.function.Function<? super T1,? extends U1> f1, java.util.function.Function<? super T2,? extends U2> f2)
Maps the components of this tuple using a mapper function for each component.<U> Tuple2<U,T2>
map1(java.util.function.Function<? super T1,? extends U> mapper)
Maps the 1st component of this tuple to a new value.<U> Tuple2<T1,U>
map2(java.util.function.Function<? super T2,? extends U> mapper)
Maps the 2nd component of this tuple to a new value.Tuple2<T2,T1>
swap()
Swaps the elements of thisTuple
.java.util.Map.Entry<T1,T2>
toEntry()
Converts the tuple to java.util.Map.EntryTuple
.Seq<?>
toSeq()
Converts this tuple to a sequence.java.lang.String
toString()
Tuple2<T1,T2>
update1(T1 value)
Sets the 1st element of this tuple to the givenvalue
.Tuple2<T1,T2>
update2(T2 value)
Sets the 2nd element of this tuple to the givenvalue
.
-
-
-
Method Detail
-
comparator
public static <T1,T2> java.util.Comparator<Tuple2<T1,T2>> comparator(java.util.Comparator<? super T1> t1Comp, java.util.Comparator<? super T2> t2Comp)
-
arity
public int arity()
Description copied from interface:Tuple
Returns the number of elements of this tuple.
-
compareTo
public int compareTo(Tuple2<T1,T2> that)
- Specified by:
compareTo
in interfacejava.lang.Comparable<T1>
-
_1
public T1 _1()
Getter of the 1st element of this tuple.- Returns:
- the 1st element of this Tuple.
-
update1
public Tuple2<T1,T2> update1(T1 value)
Sets the 1st element of this tuple to the givenvalue
.- Parameters:
value
- the new value- Returns:
- a copy of this tuple with a new value for the 1st element of this Tuple.
-
_2
public T2 _2()
Getter of the 2nd element of this tuple.- Returns:
- the 2nd element of this Tuple.
-
update2
public Tuple2<T1,T2> update2(T2 value)
Sets the 2nd element of this tuple to the givenvalue
.- Parameters:
value
- the new value- Returns:
- a copy of this tuple with a new value for the 2nd element of this Tuple.
-
swap
public Tuple2<T2,T1> swap()
Swaps the elements of thisTuple
.- Returns:
- A new Tuple where the first element is the second element of this Tuple and the second element is the first element of this Tuple.
-
toEntry
public java.util.Map.Entry<T1,T2> toEntry()
Converts the tuple to java.util.Map.EntryTuple
.- Returns:
- A java.util.Map.Entry where the first element is the key and the second element is the value.
-
map
public <U1,U2> Tuple2<U1,U2> map(java.util.function.BiFunction<? super T1,? super T2,Tuple2<U1,U2>> mapper)
Maps the components of this tuple using a mapper function.- Type Parameters:
U1
- new type of the 1st componentU2
- new type of the 2nd component- Parameters:
mapper
- the mapper function- Returns:
- A new Tuple of same arity.
- Throws:
java.lang.NullPointerException
- ifmapper
is null
-
map
public <U1,U2> Tuple2<U1,U2> map(java.util.function.Function<? super T1,? extends U1> f1, java.util.function.Function<? super T2,? extends U2> f2)
Maps the components of this tuple using a mapper function for each component.- Type Parameters:
U1
- new type of the 1st componentU2
- new type of the 2nd component- Parameters:
f1
- the mapper function of the 1st componentf2
- the mapper function of the 2nd component- Returns:
- A new Tuple of same arity.
- Throws:
java.lang.NullPointerException
- if one of the arguments is null
-
map1
public <U> Tuple2<U,T2> map1(java.util.function.Function<? super T1,? extends U> mapper)
Maps the 1st component of this tuple to a new value.- Type Parameters:
U
- new type of the 1st component- Parameters:
mapper
- A mapping function- Returns:
- a new tuple based on this tuple and substituted 1st component
-
map2
public <U> Tuple2<T1,U> map2(java.util.function.Function<? super T2,? extends U> mapper)
Maps the 2nd component of this tuple to a new value.- Type Parameters:
U
- new type of the 2nd component- Parameters:
mapper
- A mapping function- Returns:
- a new tuple based on this tuple and substituted 2nd component
-
apply
public <U> U apply(java.util.function.BiFunction<? super T1,? super T2,? extends U> f)
Transforms this tuple to an object of type U.- Type Parameters:
U
- type of the transformation result- Parameters:
f
- Transformation which creates a new object of type U based on this tuple's contents.- Returns:
- An object of type U
- Throws:
java.lang.NullPointerException
- iff
is null
-
toSeq
public Seq<?> toSeq()
Description copied from interface:Tuple
Converts this tuple to a sequence.
-
append
public <T3> Tuple3<T1,T2,T3> append(T3 t3)
Append a value to this tuple.- Type Parameters:
T3
- type of the value to append- Parameters:
t3
- the value to append- Returns:
- a new Tuple with the value appended
-
concat
public <T3> Tuple3<T1,T2,T3> concat(Tuple1<T3> tuple)
Concat a tuple's values to this tuple.- Type Parameters:
T3
- the type of the 3rd value in the tuple- Parameters:
tuple
- the tuple to concat- Returns:
- a new Tuple with the tuple values appended
- Throws:
java.lang.NullPointerException
- iftuple
is null
-
concat
public <T3,T4> Tuple4<T1,T2,T3,T4> concat(Tuple2<T3,T4> tuple)
Concat a tuple's values to this tuple.- Type Parameters:
T3
- the type of the 3rd value in the tupleT4
- the type of the 4th value in the tuple- Parameters:
tuple
- the tuple to concat- Returns:
- a new Tuple with the tuple values appended
- Throws:
java.lang.NullPointerException
- iftuple
is null
-
concat
public <T3,T4,T5> Tuple5<T1,T2,T3,T4,T5> concat(Tuple3<T3,T4,T5> tuple)
Concat a tuple's values to this tuple.- Type Parameters:
T3
- the type of the 3rd value in the tupleT4
- the type of the 4th value in the tupleT5
- the type of the 5th value in the tuple- Parameters:
tuple
- the tuple to concat- Returns:
- a new Tuple with the tuple values appended
- Throws:
java.lang.NullPointerException
- iftuple
is null
-
concat
public <T3,T4,T5,T6> Tuple6<T1,T2,T3,T4,T5,T6> concat(Tuple4<T3,T4,T5,T6> tuple)
Concat a tuple's values to this tuple.- Type Parameters:
T3
- the type of the 3rd value in the tupleT4
- the type of the 4th value in the tupleT5
- the type of the 5th value in the tupleT6
- the type of the 6th value in the tuple- Parameters:
tuple
- the tuple to concat- Returns:
- a new Tuple with the tuple values appended
- Throws:
java.lang.NullPointerException
- iftuple
is null
-
concat
public <T3,T4,T5,T6,T7> Tuple7<T1,T2,T3,T4,T5,T6,T7> concat(Tuple5<T3,T4,T5,T6,T7> tuple)
Concat a tuple's values to this tuple.- Type Parameters:
T3
- the type of the 3rd value in the tupleT4
- the type of the 4th value in the tupleT5
- the type of the 5th value in the tupleT6
- the type of the 6th value in the tupleT7
- the type of the 7th value in the tuple- Parameters:
tuple
- the tuple to concat- Returns:
- a new Tuple with the tuple values appended
- Throws:
java.lang.NullPointerException
- iftuple
is null
-
concat
public <T3,T4,T5,T6,T7,T8> Tuple8<T1,T2,T3,T4,T5,T6,T7,T8> concat(Tuple6<T3,T4,T5,T6,T7,T8> tuple)
Concat a tuple's values to this tuple.- Type Parameters:
T3
- the type of the 3rd value in the tupleT4
- the type of the 4th value in the tupleT5
- the type of the 5th value in the tupleT6
- the type of the 6th value in the tupleT7
- the type of the 7th value in the tupleT8
- the type of the 8th value in the tuple- Parameters:
tuple
- the tuple to concat- Returns:
- a new Tuple with the tuple values appended
- Throws:
java.lang.NullPointerException
- iftuple
is null
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-