IComparator インターフェイス

定義

オブジェクトの一部のコレクションに 対して合計順序 を設定する比較関数。

[Android.Runtime.Register("java/util/Comparator", "", "Java.Util.IComparatorInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public interface IComparator : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/Comparator", "", "Java.Util.IComparatorInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type IComparator = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
派生
属性
実装

注釈

オブジェクトの一部のコレクションに 対して合計順序 を設定する比較関数。 比較子を並べ替えメソッド ( Collections#sort(List,Comparator) Collections.sortArrays#sort(Object[],Comparator) Arrays.sortなど) に渡して、並べ替え順序を正確に制御できます。 比較子を使用して、特定のデータ構造 (SortedSet の並べ替えられたセットや SortedMap の並べ替えられたマップなど) の順序を制御したり、同等の自然な順序を持たないオブジェクトのコレクションの順序を指定したりすることもできます。

S一連の要素に対するコンパレータcによって課される順序は、c.compare(e1, e2)==0がすべてのe1およびSe2に対してe1.equals(e2)と同じブール値を持つ場合にのみ等しいと言われます。

並べ替えられたセット (または並べ替えられたマップ) の順序と等しい順序に一致しない順序を設定できる比較器を使用する場合は、注意が必要です。 明示的な比較子 c を持つ並べ替えられたセット (または並べ替えられたマップ) が、セット Sから描画された要素 (またはキー) で使用されるとします。 Scによって課される順序が等しいと一致しない場合、並べ替えられたセット (または並べ替えられたマップ) は "奇妙に" 動作します。 特に、並べ替えられたセット (または並べ替えられたマップ) は、 equalsの観点から定義されたセット (またはマップ) の一般的なコントラクトに違反します。

たとえば、1 つは、比較子cを持つ空のTreeSet(a.equals(b) && c.compare(a, b) != 0)するように、2 つの要素abを追加するとします。 2 番目の add 操作は true を返します (ツリー セットのサイズが大きくなります)。 ab は、 Set#add Set.add メソッドの仕様に反していても、ツリー セットの観点からは同等ではないためです。

注: 一般に、コンパレータはシリアル化可能なデータ構造 (TreeSetTreeMap など) で順序付けメソッドとして使用できるため、java.io.Serializableも実装することをお勧めします。 データ構造を正常にシリアル化するには、比較子 (指定されている場合) が Serializableを実装する必要があります。

数学的に傾斜した場合、特定のコンパレータcが特定のオブジェクトセットに課す強制順序を定義する関係Sは次のとおりです。

{(x, y) such that c.compare(x, y) &lt;= 0}.

この合計注文の は次のとおりです。

{(x, y) such that c.compare(x, y) == 0}.

これは、商がS対する等価関係であり、課された順序がS合計注文であることをcompareの契約から直ちに従います。 Scによって課される順序が等しいと言うとき、順序付けの商はオブジェクトのObject#equals(Object) equals(Object)メソッドによって定義された等価関係であることを意味します。

{(x, y) such that x.equals(y)}.

つまり、強制順序が等しい場合、 equals メソッドの等価関係で定義される等価クラスと、 compare メソッドの商で定義された等価クラスは同じです。

Comparableとは異なり、比較子は必要に応じて、等価関係の要件を維持しながら、null 引数の比較を許可できます。

このインターフェイスは、Java コレクション フレームワークのメンバーです

1.2 で追加されました。

java.util.Comparatorの Java ドキュメント。

このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。

プロパティ

名前 説明
Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() の値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
PeerReference

ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。

(継承元 IJavaPeerable)

メソッド

名前 説明
Compare(Object, Object)

順序の 2 つの引数を比較します。

Comparing(IFunction, IComparator)

Tから並べ替えキーを抽出し、指定したComparatorを使用してその並べ替えキーと比較するComparator<T>を返す関数を受け入れます。

Comparing(IFunction)

Tからjava.lang.Comparable Comparable並べ替えキーを抽出し、その並べ替えキーで比較するComparator<T>を返す関数を受け入れます。

ComparingDouble(IToDoubleFunction)

Tからdouble並べ替えキーを抽出し、その並べ替えキーで比較するComparator<T>を返す関数を受け入れます。

ComparingInt(IToIntFunction)

Tからint並べ替えキーを抽出し、その並べ替えキーで比較するComparator<T>を返す関数を受け入れます。

ComparingLong(IToLongFunction)

Tからlong並べ替えキーを抽出し、その並べ替えキーで比較するComparator<T>を返す関数を受け入れます。

Disposed()

インスタンスが破棄されたときに呼び出されます。

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

このインスタンスへの未処理の参照がない場合は、 Dispose()を呼び出します。それ以外の場合は何も実行しません。

(継承元 IJavaPeerable)
Equals(Object)

他のオブジェクトが > かどうかを示します。equal to>このコンパレータ。

Finalized()

インスタンスが終了したときに呼び出されます。

(継承元 IJavaPeerable)
NaturalOrder()

Comparableオブジェクトを自然な順序で比較する比較子を返します。

NullsFirst(IComparator)

nullが null 以外の値より小さいと見なす、null に対応する比較子を返します。

NullsLast(IComparator)

nullが null 以外より大きいと見なす null に対応する比較子を返します。

Reversed()

このコンパレータの逆順序を強制するコンパレータを返します。

ReverseOrder()

<em>自然順序</em>の逆を強制するコンパレータを返します。

SetJniIdentityHashCode(Int32)

JniIdentityHashCodeによって返される値を設定します。

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

オブジェクトの一部のコレクションに 対して合計順序 を設定する比較関数。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

PeerReferenceによって返される値を設定します。

(継承元 IJavaPeerable)
ThenComparing(IComparator)

別のコンパレータを持つ辞書式比較子を返します。

ThenComparing(IFunction, IComparator)

指定された Comparatorと比較するキーを抽出する関数を持つ辞書式比較子を返します。

ThenComparing(IFunction)

Comparable並べ替えキーを抽出する関数を持つ辞書式比較子を返します。

ThenComparingDouble(IToDoubleFunction)

double並べ替えキーを抽出する関数を持つ辞書式比較子を返します。

ThenComparingInt(IToIntFunction)

int並べ替えキーを抽出する関数を持つ辞書式比較子を返します。

ThenComparingLong(IToLongFunction)

long並べ替えキーを抽出する関数を持つ辞書式比較子を返します。

UnregisterFromRuntime()

ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

オブジェクトの一部のコレクションに 対して合計順序 を設定する比較関数。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象