Class ArraysPlume.ComparableArrayComparatorLexical<T extends Comparable<T>>

java.lang.Object
org.plumelib.util.ArraysPlume.ComparableArrayComparatorLexical<T>
Type Parameters:
T - the type of the array elements
All Implemented Interfaces:
Serializable, Comparator<T[]>
Enclosing class:
ArraysPlume

public static final class ArraysPlume.ComparableArrayComparatorLexical<T extends Comparable<T>> extends Object implements Comparator<T[]>, Serializable
Compare two arrays lexically (element-by-element). If all shared elements are the same, but the lengths differ, then the shorter array is considered less.

Note: this comparator imposes orderings that are inconsistent with Object.equals(java.lang.Object). That is, it may return 0 if the arrays contain identical elements but are not equal according to equals() (which tests reference equality).

See Also:
  • Constructor Details

    • ComparableArrayComparatorLexical

      public ComparableArrayComparatorLexical()
      Create a new ComparableArrayComparatorLexical.
  • Method Details

    • compare

      @Pure public int compare(@PolyNull T[] a1, @PolyNull T[] a2)
      Compare two arrays lexically (element-by-element).
      Specified by:
      compare in interface Comparator<T extends Comparable<T>>
      Parameters:
      a1 - first array to compare
      a2 - second array to compare
      Returns:
      a negative integer, zero, or a positive integer, depending on whether the first argument is less than, equal to, or greater than the second argument