Class Tuple

  • All Implemented Interfaces:
    java.lang.Iterable<java.lang.Object>
    Direct Known Subclasses:
    Tuple.Tuple1

    @Immutable
    public class Tuple
    extends java.lang.Object
    implements java.lang.Iterable<java.lang.Object>
    Base class for holding tuples.

    A note on tuples in java 8:
    This class is mainly meant for holding sets of values passed along in a stream, not as a general holder class. It can be used as a mean of returning tuples of values from methods, though the latter I would really discourage, as it makes the code usually less readable. This would be a moot problem if Java had native tuple handling, but alas.

    Example code:

    
     list.stream()
         .map(i -> tuple(i, ((Integer) i).hashCode())
         .sort(Comparators.comparing(Tuple.Tuple2::second))
         .findFirst()
     
    • Constructor Summary

      Constructors 
      Constructor Description
      Tuple​(java.lang.Object... values)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object[] array()  
      boolean equals​(java.lang.Object o)  
      <T> T get​(int i)  
      int hashCode()  
      java.util.Iterator<java.lang.Object> iterator()  
      int size()  
      java.lang.String toString()  
      static <T> Tuple.Tuple1<T> tuple​(T value)  
      static <T1,​T2>
      Tuple.Tuple2<T1,​T2>
      tuple​(T1 v1, T2 v2)  
      static <T1,​T2,​T3>
      Tuple.Tuple3<T1,​T2,​T3>
      tuple​(T1 v1, T2 v2, T3 v3)  
      static <T1,​T2,​T3,​T4>
      Tuple.Tuple4<T1,​T2,​T3,​T4>
      tuple​(T1 v1, T2 v2, T3 v3, T4 v4)  
      static <T1,​T2,​T3,​T4,​T5>
      Tuple.Tuple5<T1,​T2,​T3,​T4,​T5>
      tuple​(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5)  
      static <T1,​T2,​T3,​T4,​T5,​T6>
      Tuple.Tuple6<T1,​T2,​T3,​T4,​T5,​T6>
      tuple​(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6)  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Constructor Detail

      • Tuple

        public Tuple​(java.lang.Object... values)
    • Method Detail

      • tuple

        public static <T> Tuple.Tuple1<T> tuple​(T value)
      • tuple

        public static <T1,​T2> Tuple.Tuple2<T1,​T2> tuple​(T1 v1,
                                                                    T2 v2)
      • tuple

        public static <T1,​T2,​T3> Tuple.Tuple3<T1,​T2,​T3> tuple​(T1 v1,
                                                                                      T2 v2,
                                                                                      T3 v3)
      • tuple

        public static <T1,​T2,​T3,​T4> Tuple.Tuple4<T1,​T2,​T3,​T4> tuple​(T1 v1,
                                                                                                        T2 v2,
                                                                                                        T3 v3,
                                                                                                        T4 v4)
      • tuple

        public static <T1,​T2,​T3,​T4,​T5> Tuple.Tuple5<T1,​T2,​T3,​T4,​T5> tuple​(T1 v1,
                                                                                                                          T2 v2,
                                                                                                                          T3 v3,
                                                                                                                          T4 v4,
                                                                                                                          T5 v5)
      • tuple

        public static <T1,​T2,​T3,​T4,​T5,​T6> Tuple.Tuple6<T1,​T2,​T3,​T4,​T5,​T6> tuple​(T1 v1,
                                                                                                                                            T2 v2,
                                                                                                                                            T3 v3,
                                                                                                                                            T4 v4,
                                                                                                                                            T5 v5,
                                                                                                                                            T6 v6)
      • iterator

        @Nonnull
        public java.util.Iterator<java.lang.Object> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<java.lang.Object>
      • array

        public java.lang.Object[] array()
      • size

        public int size()
      • get

        public <T> T get​(int i)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • 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