Package org.apache.jorphan.util

# Class AlphaNumericComparator<T>

java.lang.Object
org.apache.jorphan.util.AlphaNumericComparator<T>

All Implemented Interfaces:
  `Comparator<T>`

public class AlphaNumericComparator<T> extends Object implements Comparator<T>
Comparator for Objects, that compares based on their converted values. The objects will be converted to a String value using the given `Function`. That value will be compared in a human readable fashion by trying to parse numbers that appear in the keys as integers and compare those, too.

Heavily influenced by https://codereview.stackexchange.com/questions/37192/number-aware-string-sorting-with-comparator

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Comparator<?>`
  `TO_STRING_COMPARATOR`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AlphaNumericComparator(Function<? super T,String> converter)`
  Constructs a comparator with a converter function

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `compare(T o1, T o2)`

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

  - ### TO_STRING_COMPARATOR

    public static final Comparator<?> TO_STRING_COMPARATOR

- ## Constructor Details

  - ### AlphaNumericComparator

    public AlphaNumericComparator(Function<? super T,String> converter)
    Constructs a comparator with a converter function
    Parameters:
      `converter` - that generates a String value from the arguments given to `Comparator.compare(Object, Object)`

- ## Method Details

  - ### compare

    public int compare(T o1, T o2)
    Specified by:
      `compare` in interface `Comparator<T>`