public class OrderComparator
extends java.lang.Object
implements java.util.Comparator<java.lang.Object>
Ordered
オブジェクトの Comparator
実装。昇順または降順の優先順位で並べ替えます。同じ順序値を持つオブジェクトは、同じ順序値を持つ他のオブジェクトに対して任意の順序で並べ替えられます。
独自の順序値を提供しないオブジェクトには、暗黙的に Ordered.LOWEST_PRECEDENCE
の値が割り当てられるため、同じ順序値を持つ他のオブジェクトに対して、任意の順序でソートされたコレクションの最後に到達します。
Ordered
, AnnotationAwareOrderComparator
, List.sort(java.util.Comparator)
, Arrays.sort(Object[], java.util.Comparator)
修飾子と型 | クラスと説明 |
---|---|
static interface | OrderComparator.OrderSourceProvider 特定のオブジェクトのオーダー元を提供する戦略インターフェース。 |
修飾子と型 | フィールドと説明 |
---|---|
static OrderComparator | INSTANCE OrderComparator の共有デフォルトインスタンス。 |
コンストラクターと説明 |
---|
OrderComparator() |
修飾子と型 | メソッドと説明 |
---|---|
int | compare(java.lang.Object o1, java.lang.Object o2) |
protected java.lang.Integer | findOrder(java.lang.Object obj) 指定されたオブジェクトが示すオーダー値を検索します。 |
protected int | getOrder(java.lang.Object obj) 指定されたオブジェクトのオーダー値を決定します。 |
java.lang.Integer | getPriority(java.lang.Object obj) 存在する場合、指定されたオブジェクトの優先度の値を決定します。 |
static void | sort(java.util.List<?> list) 指定されたリストをデフォルトの OrderComparator でソートします。 |
static void | sort(java.lang.Object[] array) 指定された配列をデフォルトの OrderComparator でソートします。 |
static void | sortIfNecessary(java.lang.Object value) 必要に応じて、指定された配列またはリストをデフォルトの OrderComparator でソートします。 |
java.util.Comparator<java.lang.Object> | withSourceProvider(OrderComparator.OrderSourceProvider sourceProvider) 指定されたソースプロバイダーを使用して、適合したオーダーコンパレーターを構築します。 |
public static final OrderComparator INSTANCE
OrderComparator
の共有デフォルトインスタンス。public java.util.Comparator<java.lang.Object> withSourceProvider(OrderComparator.OrderSourceProvider sourceProvider)
sourceProvider
- 使用するオーダー元プロバイダー public int compare(@Nullable java.lang.Object o1, @Nullable java.lang.Object o2)
java.util.Comparator<java.lang.Object>
の compare
protected int getOrder(@Nullable java.lang.Object obj)
デフォルトの実装では、findOrder(java.lang.Object)
への委譲を通じて Ordered
インターフェースをチェックします。サブクラスでオーバーライドできます。
obj
- チェックするオブジェクト Ordered.LOWEST_PRECEDENCE
@Nullable protected java.lang.Integer findOrder(java.lang.Object obj)
デフォルトの実装では、Ordered
インターフェースをチェックします。サブクラスでオーバーライドできます。
obj
- チェックするオブジェクト null
@Nullable public java.lang.Integer getPriority(java.lang.Object obj)
デフォルトの実装は常に null
を返します。サブクラスはこれをオーバーライドして、特定の種類の値に、「順序」の意味に加えて「優先」特性を与えることができます。優先度は、リスト / 配列での順序付けの目的に役立つことに加えて、あるオブジェクトを別のオブジェクトから選択するために使用できることを示します。
obj
- チェックするオブジェクト null
public static void sort(java.util.List<?> list)
サイズ 0 または 1 のリストのソートをスキップするように最適化され、不要な配列抽出が回避されました。
list
- ソートするリスト List.sort(java.util.Comparator)
public static void sort(java.lang.Object[] array)
サイズ 0 または 1 のリストのソートをスキップするように最適化され、不要な配列抽出が回避されました。
array
- ソートする配列 Arrays.sort(Object[], java.util.Comparator)
public static void sortIfNecessary(java.lang.Object value)
サイズ 0 または 1 のリストのソートをスキップするように最適化され、不要な配列抽出が回避されました。
value
- ソートする配列またはリスト Arrays.sort(Object[], java.util.Comparator)