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>`