Package jodd.util

Class NaturalOrderComparator<T>

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

    public class NaturalOrderComparator<T>
    extends java.lang.Object
    implements java.util.Comparator<T>, java.io.Serializable
    Probably the best natural strings comparator.
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compare​(T o1, T o2)  
      protected int[] compareDigits​(java.lang.String str1, int ndx1, java.lang.String str2, int ndx2)
      Compare digits at certain position in two strings.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, 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

      • ignoreCase

        protected final boolean ignoreCase
      • ignoreAccents

        protected final boolean ignoreAccents
      • skipSpaces

        protected final boolean skipSpaces
    • Constructor Detail

      • NaturalOrderComparator

        public NaturalOrderComparator()
      • NaturalOrderComparator

        public NaturalOrderComparator​(boolean ignoreCase,
                                      boolean ignoreAccents,
                                      boolean skipSpaces)
    • Method Detail

      • compareDigits

        protected int[] compareDigits​(java.lang.String str1,
                                      int ndx1,
                                      java.lang.String str2,
                                      int ndx2)
        Compare digits at certain position in two strings. The longest run of digits wins. That aside, the greatest value wins.
        Returns:
        if numbers are different, only 1 element is returned.
      • compare

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