## org.springframework.core
Class OrderComparator

    java.lang.Object
      org.springframework.core.OrderComparator

All Implemented Interfaces:
  Comparator<Object>

Direct Known Subclasses:
  AnnotationAwareOrderComparator

    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).

Since:
  07.04.2003
Author:
  Juergen Hoeller
See Also:
  `Ordered`, `Collections.sort(java.util.List, java.util.Comparator)`, `Arrays.sort(Object[], java.util.Comparator)`

Field Summary
`static OrderComparator` `INSTANCE` Shared default instance of OrderComparator.

Constructor Summary
`OrderComparator()`

Method Summary
`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.

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`

Field Detail

### INSTANCE

    public static final OrderComparator INSTANCE

  Shared default instance of OrderComparator.

Constructor Detail

### OrderComparator

    public OrderComparator()

Method Detail

### compare

    public int compare(Object o1,
                       Object o2)

  Specified by:
    `compare` in interface `Comparator<Object>`

### getOrder

    protected int getOrder(Object obj)

  Determine the order value for the given object.

  The default implementation checks against the `Ordered` interface. Can be overridden in subclasses.

  Parameters:
    `obj` - the object to check
  Returns:
    the order value, or `Ordered.LOWEST_PRECEDENCE` as fallback

### sort

    public static void sort(List<?> list)

  Sort the given List with a default OrderComparator.

  Optimized to skip sorting for lists with size 0 or 1, in order to avoid unnecessary array extraction.

  Parameters:
    `list` - the List to sort
  See Also:
    `Collections.sort(java.util.List, java.util.Comparator)`

### sort

    public static void sort(Object[] array)

  Sort the given array with a default OrderComparator.

  Optimized to skip sorting for lists with size 0 or 1, in order to avoid unnecessary array extraction.

  Parameters:
    `array` - the array to sort
  See Also:
    `Arrays.sort(Object[], java.util.Comparator)`