public class OrderComparator extends Object implements Comparator<Object>
Comparator
implementation for Ordered
objects,
sorting by order value ascending (resp. by priority descending).
Non-Ordered
objects are treated as greatest order
values, thus ending up at the end of the list, in arbitrary order
(just like same order values of Ordered
objects).
Ordered
,
Collections.sort(java.util.List, java.util.Comparator)
,
Arrays.sort(Object[], java.util.Comparator)
Modifier and Type | Field and Description |
---|---|
static OrderComparator |
INSTANCE
Shared default instance of OrderComparator.
|
Constructor and Description |
---|
OrderComparator() |
Modifier and Type | Method and Description |
---|---|
int |
compare(Object o1,
Object o2) |
protected int |
getOrder(Object obj)
Determine the order value for the given object.
|
static void |
sort(List<?> list)
Sort the given List with a default OrderComparator.
|
static void |
sort(Object[] array)
Sort the given array with a default OrderComparator.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
equals
public static final OrderComparator INSTANCE
public int compare(Object o1, Object o2)
compare
in interface Comparator<Object>
protected int getOrder(Object obj)
The default implementation checks against the Ordered
interface. Can be overridden in subclasses.
obj
- the object to checkOrdered.LOWEST_PRECEDENCE
as fallbackpublic static void sort(List<?> list)
Optimized to skip sorting for lists with size 0 or 1, in order to avoid unnecessary array extraction.
list
- the List to sortCollections.sort(java.util.List, java.util.Comparator)
public static void sort(Object[] array)
Optimized to skip sorting for lists with size 0 or 1, in order to avoid unnecessary array extraction.
array
- the array to sortArrays.sort(Object[], java.util.Comparator)