Class AlphaNumericComparator

  • All Implemented Interfaces:
    java.util.Comparator<java.lang.Object>

    public class AlphaNumericComparator
    extends java.lang.Object
    implements java.util.Comparator<java.lang.Object>
    This is a comparator to perform a mix of alphabetical+numeric comparison. For example, if there is a list {"test10", "test2", "test150", "test25", "test1"} then what we generally expect from the ordering is the result {"test1", "test2", "test10", "test25", "test150"}. However, standard lexicographic ordering does not do that and "test10" comes before "test2". This class is provided to overcome that problem. This functionality is useful to sort the benchmark files (like the ones in in DL-benchmark-suite) from smallest to the largest. Comparisons are done on the String values returned by toString() so care should be taken when this comparator is used to sort arbitrary Java objects.
    Author:
    Evren Sirin
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compare​(java.lang.Object o1, java.lang.Object o2)  
      • Methods inherited from class java.lang.Object

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

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

      • CASE_SENSITIVE

        public static final AlphaNumericComparator CASE_SENSITIVE
        A static instantiation of a case sensitive AlphaNumericComparator
      • CASE_INSENSITIVE

        public static final AlphaNumericComparator CASE_INSENSITIVE
        A static instantiation of a case insensitive AlphaNumericComparator
    • Constructor Detail

      • AlphaNumericComparator

        public AlphaNumericComparator()
        Create a case sensitive AlphaNumericComparator
      • AlphaNumericComparator

        public AlphaNumericComparator​(boolean caseSensitive)
        Create an AlphaNumericComparator
        Parameters:
        caseSensitive - if true comparisons are case sensitive
    • Method Detail

      • compare

        public int compare​(java.lang.Object o1,
                           java.lang.Object o2)
        Specified by:
        compare in interface java.util.Comparator<java.lang.Object>