Package io.vavr

Class Tuple4<T1,T2,T3,T4>

java.lang.Object
io.vavr.Tuple4<T1,T2,T3,T4>
Type Parameters:
T1 - type of the 1st element
T2 - type of the 2nd element
T3 - type of the 3rd element
T4 - type of the 4th element
All Implemented Interfaces:
Tuple, Serializable, Comparable<Tuple4<T1,T2,T3,T4>>

public final class Tuple4<T1,T2,T3,T4> extends Object implements Tuple, Comparable<Tuple4<T1,T2,T3,T4>>, Serializable
A tuple of 4 elements which can be seen as cartesian product of 4 components.
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • _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.
    • _4

      public final T4 _4
      The 4th element of this tuple.
  • Constructor Details

    • Tuple4

      public Tuple4(T1 t1, T2 t2, T3 t3, T4 t4)
      Constructs a tuple of 4 elements.
      Parameters:
      t1 - the 1st element
      t2 - the 2nd element
      t3 - the 3rd element
      t4 - the 4th element
  • Method Details

    • comparator

      public static <T1, T2, T3, T4> Comparator<Tuple4<T1,T2,T3,T4>> comparator(Comparator<? super T1> t1Comp, Comparator<? super T2> t2Comp, Comparator<? super T3> t3Comp, Comparator<? super T4> t4Comp)
    • compareTo

      private static <U1 extends Comparable<? super U1>, U2 extends Comparable<? super U2>, U3 extends Comparable<? super U3>, U4 extends Comparable<? super U4>> int compareTo(Tuple4<?,?,?,?> o1, Tuple4<?,?,?,?> o2)
    • 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(Tuple4<T1,T2,T3,T4> that)
      Specified by:
      compareTo in interface Comparable<T1>
    • _1

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

      public Tuple4<T1,T2,T3,T4> 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 Tuple4<T1,T2,T3,T4> 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 Tuple4<T1,T2,T3,T4> 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.
    • _4

      public T4 _4()
      Getter of the 4th element of this tuple.
      Returns:
      the 4th element of this Tuple.
    • update4

      public Tuple4<T1,T2,T3,T4> update4(T4 value)
      Sets the 4th 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 4th element of this Tuple.
    • map

      public <U1, U2, U3, U4> Tuple4<U1,U2,U3,U4> map(Function4<? super T1,? super T2,? super T3,? super T4,Tuple4<U1,U2,U3,U4>> 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
      U4 - new type of the 4th component
      Parameters:
      mapper - the mapper function
      Returns:
      A new Tuple of same arity.
      Throws:
      NullPointerException - if mapper is null
    • map

      public <U1, U2, U3, U4> Tuple4<U1,U2,U3,U4> map(Function<? super T1,? extends U1> f1, Function<? super T2,? extends U2> f2, Function<? super T3,? extends U3> f3, Function<? super T4,? extends U4> f4)
      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
      U4 - new type of the 4th 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
      f4 - the mapper function of the 4th component
      Returns:
      A new Tuple of same arity.
      Throws:
      NullPointerException - if one of the arguments is null
    • map1

      public <U> Tuple4<U,T2,T3,T4> map1(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> Tuple4<T1,U,T3,T4> map2(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> Tuple4<T1,T2,U,T4> map3(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
    • map4

      public <U> Tuple4<T1,T2,T3,U> map4(Function<? super T4,? extends U> mapper)
      Maps the 4th component of this tuple to a new value.
      Type Parameters:
      U - new type of the 4th component
      Parameters:
      mapper - A mapping function
      Returns:
      a new tuple based on this tuple and substituted 4th component
    • apply

      public <U> U apply(Function4<? super T1,? super T2,? super T3,? super T4,? 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:
      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 <T5> Tuple5<T1,T2,T3,T4,T5> append(T5 t5)
      Append a value to this tuple.
      Type Parameters:
      T5 - type of the value to append
      Parameters:
      t5 - the value to append
      Returns:
      a new Tuple with the value appended
    • concat

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

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

      public <T5, T6, T7> Tuple7<T1,T2,T3,T4,T5,T6,T7> concat(Tuple3<T5,T6,T7> tuple)
      Concat a tuple's values to this tuple.
      Type Parameters:
      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:
      NullPointerException - if tuple is null
    • concat

      public <T5, T6, T7, T8> Tuple8<T1,T2,T3,T4,T5,T6,T7,T8> concat(Tuple4<T5,T6,T7,T8> tuple)
      Concat a tuple's values to this tuple.
      Type Parameters:
      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:
      NullPointerException - if tuple is null
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

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

      public String toString()
      Overrides:
      toString in class Object