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 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