Class Pair<T1,​T2>

  • Type Parameters:
    T1 - the first element type
    T2 - the second element type
    All Implemented Interfaces:
    Tuple<Pair<T1,​T2>>, Serializable

    public class Pair<T1,​T2>
    extends Object
    implements Tuple<Pair<T1,​T2>>
    Represents a Tuple with two elements.
    Note: Pair supports equals(Object) comparison using subclasses, e.g.:
    
         public class LeftAndRightSide extends Pair<String, String> {
    
             public LeftAndRightSide(String leftSide, String rightSide) {
                 super(leftSide, rightSide);
             }
         }
     
    See Also:
    Serialized Form
    • Field Detail

      • _1

        public final T1 _1
        The first element in this tuple
      • _2

        public final T2 _2
        The second element in this tuple
    • Constructor Detail

      • Pair

        public Pair​(T1 t1,
                    T2 t2)
        Construct a new Tuple with 2 elements
        Parameters:
        t1 - the first element
        t2 - the second element
    • Method Detail

      • of

        public static <T1,​T2> Pair<T1,​T2> of​(T1 t1,
                                                         T2 t2)
        Create a new Tuple with 2 elements
        Type Parameters:
        T1 - the first element type
        T2 - the second element type
        Parameters:
        t1 - the first element
        t2 - the second element
        Returns:
        the newly created Pair tuple
      • arity

        public int arity()
        Description copied from interface: Tuple
        Number of arguments/elements in the Tuple
        Specified by:
        arity in interface Tuple<T1>
        Returns:
        Number of arguments/elements in the Tuple
      • toList

        public List<?> toList()
        Description copied from interface: Tuple
        Convert the Tuple to a list
        Specified by:
        toList in interface Tuple<T1>
        Returns:
        list of all Tuple elements
      • _1

        public T1 _1()
        The first element in this tuple
        Returns:
        The first element in this tuple
      • _2

        public T2 _2()
        The second element in this tuple
        Returns:
        The second element in this tuple
      • swap

        public Pair<T2,​T1> swap()
        Swap the elements of this Pair
        Returns:
        A new Pair where the first element is the second element of this Pair AND where the second element is the first element of this Pair
      • map

        public <R1,​R2> Pair<R1,​R2> map​(BiFunction<? super T1,​? super T2,​Pair<R1,​R2>> mappingFunction)
        Maps the elements of this Pair using the mapping function
        Type Parameters:
        R1 - result type for first element of the Pair after applying the mapping function
        R2 - result type for second element of the Pair after applying the mapping function
        Parameters:
        mappingFunction - the mapping function
        Returns:
        a new Pair with the result of applying the mapping function to this Pair
      • map

        public <R1,​R2> Pair<R1,​R2> map​(Function<? super T1,​? super R1> mappingFunction1,
                                                   Function<? super T2,​? super R2> mappingFunction2)
        Maps the elements of this Pair using two distinct mapping functions
        Type Parameters:
        R1 - result type for first element of the Pair after applying the mapping function
        R2 - result type for second element of the Pair after applying the mapping function
        Parameters:
        mappingFunction1 - the mapping function for element number 1
        mappingFunction2 - the mapping function for element number 2
        Returns:
        a new Pair with the result of applying the mapping function to this Pair
      • map1

        public <R1> Pair<R1,​T2> map1​(Function<? super T1,​? super R1> mappingFunction1)
        Map the first element of this Pair using the mapping function
        Type Parameters:
        R1 - result type for first element of the Pair after applying the mapping function
        Parameters:
        mappingFunction1 - the mapping function for element number 1
        Returns:
        a new Pair with the result of applying the mapping function to the first element of this Pair
      • map2

        public <R2> Pair<T1,​R2> map2​(Function<? super T2,​? super R2> mappingFunction2)
        Map the second element of this Pair using the mapping function
        Type Parameters:
        R2 - result type for second element of the Pair after applying the mapping function
        Parameters:
        mappingFunction2 - the mapping function for element number 2
        Returns:
        a new Pair with the result of applying the mapping function to the second element of this Pair
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object