org.apache.wiki.util.comparators
Class HumanComparator
java.lang.Object
org.apache.wiki.util.comparators.HumanComparator
- All Implemented Interfaces:
- Comparator<String>
public class HumanComparator
- extends Object
- implements Comparator<String>
A comparator that sorts Strings using "human" ordering, including decimal
ordering. Only works for languages where every character is lexigraphically
distinct and correctly unicode ordered (e.g. English). Other languages should use
CollatedHumanComparator
. Pretty efficient but still slower than
String.compareTo().
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEFAULT_HUMAN_COMPARATOR
public static final Comparator<String> DEFAULT_HUMAN_COMPARATOR
HumanComparator
public HumanComparator()
- Default constructor which does nothing. Here because it has a non-default
constructor.
HumanComparator
public HumanComparator(HumanComparator.CharType[] sortOrder)
- Constructor specifying all the character type order.
- Parameters:
sortOrder
- see setSortOrder
getInstance
public static Comparator<String> getInstance()
- Returns a singleton comparator that implements the default behaviour.
- Returns:
- the singleton comparator.
compare
public int compare(String str1,
String str2)
- Specified by:
compare
in interface Comparator<String>
getSortOrder
public HumanComparator.CharType[] getSortOrder()
setSortOrder
public void setSortOrder(HumanComparator.CharType[] sortOrder)
- Set the order in which letters, numbers and everything else is presented.
Default is other, digits and then letters. For example, the strings
"abb", "a1b" and "a b" will sort in the order "a b", "a1b" then "abb" by
default.
- Parameters:
sortOrder
- Must be an array of CharType
containing
exactly 3 elements each of which must be distinct.
- Throws:
IllegalArgumentException
- if being called on the result of
HumanStringComparator.getInstance()
or
sortOrder
is not exactly 3 different
CharType
.
Copyright © {inceptionYear}-2014 The Apache Software Foundation. All rights reserved.