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.
|
static void |
sortIfNecessary(Object value)
Sort the given array or List with a default OrderComparator,
if necessary.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
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)
public static void sortIfNecessary(Object value)
Optimized to skip sorting for lists with size 0 or 1, in order to avoid unnecessary array extraction.
value
- the array or List to sortArrays.sort(Object[], java.util.Comparator)