Class ReverseNaturalOrdering

  • All Implemented Interfaces:
    java.io.Serializable, java.util.Comparator<java.lang.Comparable>

    final class ReverseNaturalOrdering
    extends Ordering<java.lang.Comparable>
    implements java.io.Serializable
    An ordering that uses the reverse of the natural order of the values.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compare​(java.lang.Comparable left, java.lang.Comparable right)  
      <E extends java.lang.Comparable>
      E
      max​(E a, E b)
      Returns the greater of the two values according to this ordering.
      <E extends java.lang.Comparable>
      E
      max​(E a, E b, E c, E... rest)
      Returns the greatest of the specified values according to this ordering.
      <E extends java.lang.Comparable>
      E
      max​(java.lang.Iterable<E> iterable)
      Returns the greatest of the specified values according to this ordering.
      <E extends java.lang.Comparable>
      E
      max​(java.util.Iterator<E> iterator)
      Returns the greatest of the specified values according to this ordering.
      <E extends java.lang.Comparable>
      E
      min​(E a, E b)
      Returns the lesser of the two values according to this ordering.
      <E extends java.lang.Comparable>
      E
      min​(E a, E b, E c, E... rest)
      Returns the least of the specified values according to this ordering.
      <E extends java.lang.Comparable>
      E
      min​(java.lang.Iterable<E> iterable)
      Returns the least of the specified values according to this ordering.
      <E extends java.lang.Comparable>
      E
      min​(java.util.Iterator<E> iterator)
      Returns the least of the specified values according to this ordering.
      private java.lang.Object readResolve()  
      <S extends java.lang.Comparable>
      Ordering<S>
      reverse()
      Returns the reverse of this ordering; the Ordering equivalent to Collections.reverseOrder(Comparator).
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Comparator

        equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
    • Constructor Detail

      • ReverseNaturalOrdering

        private ReverseNaturalOrdering()
    • Method Detail

      • compare

        public int compare​(java.lang.Comparable left,
                           java.lang.Comparable right)
        Specified by:
        compare in interface java.util.Comparator<java.lang.Comparable>
        Specified by:
        compare in class Ordering<java.lang.Comparable>
      • reverse

        public <S extends java.lang.Comparable> Ordering<S> reverse()
        Description copied from class: Ordering
        Returns the reverse of this ordering; the Ordering equivalent to Collections.reverseOrder(Comparator).

        Java 8 users: Use thisComparator.reversed() instead.

        Overrides:
        reverse in class Ordering<java.lang.Comparable>
      • min

        public <E extends java.lang.Comparable> E min​(E a,
                                                      E b)
        Description copied from class: Ordering
        Returns the lesser of the two values according to this ordering. If the values compare as 0, the first is returned.

        Implementation note: this method is invoked by the default implementations of the other min overloads, so overriding it will affect their behavior.

        Note: Consider using Comparators.min(a, b, thisComparator) instead. If thisComparator is Ordering.natural(), then use Comparators.min(a, b).

        Overrides:
        min in class Ordering<java.lang.Comparable>
        Parameters:
        a - value to compare, returned if less than or equal to b.
        b - value to compare.
      • min

        public <E extends java.lang.Comparable> E min​(E a,
                                                      E b,
                                                      E c,
                                                      E... rest)
        Description copied from class: Ordering
        Returns the least of the specified values according to this ordering. If there are multiple least values, the first of those is returned.

        Java 8 users: Use Collections.min(Arrays.asList(a, b, c...), thisComparator) instead (but note that it does not guarantee which tied minimum element is returned).

        Overrides:
        min in class Ordering<java.lang.Comparable>
        Parameters:
        a - value to compare, returned if less than or equal to the rest.
        b - value to compare
        c - value to compare
        rest - values to compare
      • min

        public <E extends java.lang.Comparable> E min​(java.util.Iterator<E> iterator)
        Description copied from class: Ordering
        Returns the least of the specified values according to this ordering. If there are multiple least values, the first of those is returned. The iterator will be left exhausted: its hasNext() method will return false.

        Java 8 users: Use Streams.stream(iterator).min(thisComparator).get() instead (but note that it does not guarantee which tied minimum element is returned).

        Overrides:
        min in class Ordering<java.lang.Comparable>
        Parameters:
        iterator - the iterator whose minimum element is to be determined
      • min

        public <E extends java.lang.Comparable> E min​(java.lang.Iterable<E> iterable)
        Description copied from class: Ordering
        Returns the least of the specified values according to this ordering. If there are multiple least values, the first of those is returned.

        Java 8 users: If iterable is a Collection, use Collections.min(collection, thisComparator) instead. Otherwise, use Streams.stream(iterable).min(thisComparator).get() instead. Note that these alternatives do not guarantee which tied minimum element is returned)

        Overrides:
        min in class Ordering<java.lang.Comparable>
        Parameters:
        iterable - the iterable whose minimum element is to be determined
      • max

        public <E extends java.lang.Comparable> E max​(E a,
                                                      E b)
        Description copied from class: Ordering
        Returns the greater of the two values according to this ordering. If the values compare as 0, the first is returned.

        Implementation note: this method is invoked by the default implementations of the other max overloads, so overriding it will affect their behavior.

        Note: Consider using Comparators.max(a, b, thisComparator) instead. If thisComparator is Ordering.natural(), then use Comparators.max(a, b).

        Overrides:
        max in class Ordering<java.lang.Comparable>
        Parameters:
        a - value to compare, returned if greater than or equal to b.
        b - value to compare.
      • max

        public <E extends java.lang.Comparable> E max​(E a,
                                                      E b,
                                                      E c,
                                                      E... rest)
        Description copied from class: Ordering
        Returns the greatest of the specified values according to this ordering. If there are multiple greatest values, the first of those is returned.

        Java 8 users: Use Collections.max(Arrays.asList(a, b, c...), thisComparator) instead (but note that it does not guarantee which tied maximum element is returned).

        Overrides:
        max in class Ordering<java.lang.Comparable>
        Parameters:
        a - value to compare, returned if greater than or equal to the rest.
        b - value to compare
        c - value to compare
        rest - values to compare
      • max

        public <E extends java.lang.Comparable> E max​(java.util.Iterator<E> iterator)
        Description copied from class: Ordering
        Returns the greatest of the specified values according to this ordering. If there are multiple greatest values, the first of those is returned. The iterator will be left exhausted: its hasNext() method will return false.

        Java 8 users: Use Streams.stream(iterator).max(thisComparator).get() instead (but note that it does not guarantee which tied maximum element is returned).

        Overrides:
        max in class Ordering<java.lang.Comparable>
        Parameters:
        iterator - the iterator whose maximum element is to be determined
      • max

        public <E extends java.lang.Comparable> E max​(java.lang.Iterable<E> iterable)
        Description copied from class: Ordering
        Returns the greatest of the specified values according to this ordering. If there are multiple greatest values, the first of those is returned.

        Java 8 users: If iterable is a Collection, use Collections.max(collection, thisComparator) instead. Otherwise, use Streams.stream(iterable).max(thisComparator).get() instead. Note that these alternatives do not guarantee which tied maximum element is returned)

        Overrides:
        max in class Ordering<java.lang.Comparable>
        Parameters:
        iterable - the iterable whose maximum element is to be determined
      • readResolve

        private java.lang.Object readResolve()
      • toString

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