Package io.vavr

Class Tuple3<T1,​T2,​T3>

  • Type Parameters:
    T1 - type of the 1st element
    T2 - type of the 2nd element
    T3 - type of the 3rd element
    All Implemented Interfaces:
    Tuple, java.io.Serializable, java.lang.Comparable<Tuple3<T1,​T2,​T3>>

    public final class Tuple3<T1,​T2,​T3>
    extends java.lang.Object
    implements Tuple, java.lang.Comparable<Tuple3<T1,​T2,​T3>>, java.io.Serializable
    A tuple of three elements which can be seen as cartesian product of three components.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      T1 _1
      The 1st element of this tuple.
      T2 _2
      The 2nd element of this tuple.
      T3 _3
      The 3rd element of this tuple.
    • Constructor Summary

      Constructors 
      Constructor Description
      Tuple3​(T1 t1, T2 t2, T3 t3)
      Constructs a tuple of three elements.
    • 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 _3()
      Getter of the 3rd element of this tuple.
      <T4> Tuple4<T1,​T2,​T3,​T4> append​(T4 t4)
      Append a value to this tuple.
      <U> U apply​(Function3<? super T1,​? super T2,​? super T3,​? 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,​T3>
      java.util.Comparator<Tuple3<T1,​T2,​T3>>
      comparator​(java.util.Comparator<? super T1> t1Comp, java.util.Comparator<? super T2> t2Comp, java.util.Comparator<? super T3> t3Comp)  
      int compareTo​(Tuple3<T1,​T2,​T3> that)  
      <T4> Tuple4<T1,​T2,​T3,​T4> concat​(Tuple1<T4> tuple)
      Concat a tuple's values to this tuple.
      <T4,​T5>
      Tuple5<T1,​T2,​T3,​T4,​T5>
      concat​(Tuple2<T4,​T5> tuple)
      Concat a tuple's values to this tuple.
      <T4,​T5,​T6>
      Tuple6<T1,​T2,​T3,​T4,​T5,​T6>
      concat​(Tuple3<T4,​T5,​T6> tuple)
      Concat a tuple's values to this tuple.
      <T4,​T5,​T6,​T7>
      Tuple7<T1,​T2,​T3,​T4,​T5,​T6,​T7>
      concat​(Tuple4<T4,​T5,​T6,​T7> tuple)
      Concat a tuple's values to this tuple.
      <T4,​T5,​T6,​T7,​T8>
      Tuple8<T1,​T2,​T3,​T4,​T5,​T6,​T7,​T8>
      concat​(Tuple5<T4,​T5,​T6,​T7,​T8> tuple)
      Concat a tuple's values to this tuple.
      boolean equals​(java.lang.Object o)  
      int hashCode()  
      <U1,​U2,​U3>
      Tuple3<U1,​U2,​U3>
      map​(Function3<? super T1,​? super T2,​? super T3,​Tuple3<U1,​U2,​U3>> mapper)
      Maps the components of this tuple using a mapper function.
      <U1,​U2,​U3>
      Tuple3<U1,​U2,​U3>
      map​(java.util.function.Function<? super T1,​? extends U1> f1, java.util.function.Function<? super T2,​? extends U2> f2, java.util.function.Function<? super T3,​? extends U3> f3)
      Maps the components of this tuple using a mapper function for each component.
      <U> Tuple3<U,​T2,​T3> map1​(java.util.function.Function<? super T1,​? extends U> mapper)
      Maps the 1st component of this tuple to a new value.
      <U> Tuple3<T1,​U,​T3> map2​(java.util.function.Function<? super T2,​? extends U> mapper)
      Maps the 2nd component of this tuple to a new value.
      <U> Tuple3<T1,​T2,​U> map3​(java.util.function.Function<? super T3,​? extends U> mapper)
      Maps the 3rd component of this tuple to a new value.
      Seq<?> toSeq()
      Converts this tuple to a sequence.
      java.lang.String toString()  
      Tuple3<T1,​T2,​T3> update1​(T1 value)
      Sets the 1st element of this tuple to the given value.
      Tuple3<T1,​T2,​T3> update2​(T2 value)
      Sets the 2nd element of this tuple to the given value.
      Tuple3<T1,​T2,​T3> update3​(T3 value)
      Sets the 3rd element of this tuple to the given value.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • _1

        public final T1 _1
        The 1st element of this tuple.
      • _2

        public final T2 _2
        The 2nd element of this tuple.
      • _3

        public final T3 _3
        The 3rd element of this tuple.
    • Constructor Detail

      • Tuple3

        public Tuple3​(T1 t1,
                      T2 t2,
                      T3 t3)
        Constructs a tuple of three elements.
        Parameters:
        t1 - the 1st element
        t2 - the 2nd element
        t3 - the 3rd element
    • Method Detail

      • comparator

        public static <T1,​T2,​T3> java.util.Comparator<Tuple3<T1,​T2,​T3>> comparator​(java.util.Comparator<? super T1> t1Comp,
                                                                                                           java.util.Comparator<? super T2> t2Comp,
                                                                                                           java.util.Comparator<? super T3> t3Comp)
      • arity

        public int arity()
        Description copied from interface: Tuple
        Returns the number of elements of this tuple.
        Specified by:
        arity in interface Tuple
        Returns:
        the number of elements.
      • compareTo

        public int compareTo​(Tuple3<T1,​T2,​T3> that)
        Specified by:
        compareTo in interface java.lang.Comparable<T1>
      • _1

        public T1 _1()
        Getter of the 1st element of this tuple.
        Returns:
        the 1st element of this Tuple.
      • update1

        public Tuple3<T1,​T2,​T3> update1​(T1 value)
        Sets the 1st element of this tuple to the given value.
        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 Tuple3<T1,​T2,​T3> update2​(T2 value)
        Sets the 2nd element of this tuple to the given value.
        Parameters:
        value - the new value
        Returns:
        a copy of this tuple with a new value for the 2nd element of this Tuple.
      • _3

        public T3 _3()
        Getter of the 3rd element of this tuple.
        Returns:
        the 3rd element of this Tuple.
      • update3

        public Tuple3<T1,​T2,​T3> update3​(T3 value)
        Sets the 3rd element of this tuple to the given value.
        Parameters:
        value - the new value
        Returns:
        a copy of this tuple with a new value for the 3rd element of this Tuple.
      • map

        public <U1,​U2,​U3> Tuple3<U1,​U2,​U3> map​(Function3<? super T1,​? super T2,​? super T3,​Tuple3<U1,​U2,​U3>> mapper)
        Maps the components of this tuple using a mapper function.
        Type Parameters:
        U1 - new type of the 1st component
        U2 - new type of the 2nd component
        U3 - new type of the 3rd component
        Parameters:
        mapper - the mapper function
        Returns:
        A new Tuple of same arity.
        Throws:
        java.lang.NullPointerException - if mapper is null
      • map

        public <U1,​U2,​U3> Tuple3<U1,​U2,​U3> map​(java.util.function.Function<? super T1,​? extends U1> f1,
                                                                       java.util.function.Function<? super T2,​? extends U2> f2,
                                                                       java.util.function.Function<? super T3,​? extends U3> f3)
        Maps the components of this tuple using a mapper function for each component.
        Type Parameters:
        U1 - new type of the 1st component
        U2 - new type of the 2nd component
        U3 - new type of the 3rd component
        Parameters:
        f1 - the mapper function of the 1st component
        f2 - the mapper function of the 2nd component
        f3 - the mapper function of the 3rd component
        Returns:
        A new Tuple of same arity.
        Throws:
        java.lang.NullPointerException - if one of the arguments is null
      • map1

        public <U> Tuple3<U,​T2,​T3> 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> Tuple3<T1,​U,​T3> 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
      • map3

        public <U> Tuple3<T1,​T2,​U> map3​(java.util.function.Function<? super T3,​? extends U> mapper)
        Maps the 3rd component of this tuple to a new value.
        Type Parameters:
        U - new type of the 3rd component
        Parameters:
        mapper - A mapping function
        Returns:
        a new tuple based on this tuple and substituted 3rd component
      • apply

        public <U> U apply​(Function3<? super T1,​? super T2,​? super T3,​? 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 - if f is null
      • toSeq

        public Seq<?> toSeq()
        Description copied from interface: Tuple
        Converts this tuple to a sequence.
        Specified by:
        toSeq in interface Tuple
        Returns:
        A new Seq.
      • append

        public <T4> Tuple4<T1,​T2,​T3,​T4> append​(T4 t4)
        Append a value to this tuple.
        Type Parameters:
        T4 - type of the value to append
        Parameters:
        t4 - the value to append
        Returns:
        a new Tuple with the value appended
      • concat

        public <T4> Tuple4<T1,​T2,​T3,​T4> concat​(Tuple1<T4> tuple)
        Concat a tuple's values to this tuple.
        Type Parameters:
        T4 - 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 - if tuple is null
      • concat

        public <T4,​T5> Tuple5<T1,​T2,​T3,​T4,​T5> concat​(Tuple2<T4,​T5> tuple)
        Concat a tuple's values to this tuple.
        Type Parameters:
        T4 - the type of the 4th value in the tuple
        T5 - 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 - if tuple is null
      • concat

        public <T4,​T5,​T6> Tuple6<T1,​T2,​T3,​T4,​T5,​T6> concat​(Tuple3<T4,​T5,​T6> tuple)
        Concat a tuple's values to this tuple.
        Type Parameters:
        T4 - the type of the 4th value in the tuple
        T5 - the type of the 5th value in the tuple
        T6 - 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 - if tuple is null
      • concat

        public <T4,​T5,​T6,​T7> Tuple7<T1,​T2,​T3,​T4,​T5,​T6,​T7> concat​(Tuple4<T4,​T5,​T6,​T7> tuple)
        Concat a tuple's values to this tuple.
        Type Parameters:
        T4 - the type of the 4th value in the tuple
        T5 - the type of the 5th value in the tuple
        T6 - the type of the 6th value in the tuple
        T7 - 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 - if tuple is null
      • concat

        public <T4,​T5,​T6,​T7,​T8> Tuple8<T1,​T2,​T3,​T4,​T5,​T6,​T7,​T8> concat​(Tuple5<T4,​T5,​T6,​T7,​T8> tuple)
        Concat a tuple's values to this tuple.
        Type Parameters:
        T4 - the type of the 4th value in the tuple
        T5 - the type of the 5th value in the tuple
        T6 - the type of the 6th value in the tuple
        T7 - the type of the 7th value in the tuple
        T8 - 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 - if tuple is null
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object