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
派生
属性
実装

注釈

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

一連の要素Sに対して比較子cによって課される順序は、 のすべての と のブール値e2Se1.equals(e2)e1が同じ場合にのみ、 と が等しいとc.compare(e1, e2)==0見なされます。

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

たとえば、1 つは 2 つの要素aを追加し、b比較子 cを使用して空TreeSetの に追加すると(a.equals(b) && c.compare(a, b) != 0)します。 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}.

のコントラクトcompareから直ちに、商が に対する等価関係Sであり、強制順序が のS合計順序であることを示します。 によって課されるc順序が等しいと言う場合、順序付けの商はオブジェクトObject#equals(Object) equals(Object)のメソッドによって定義される等価関係であることを意味します。S

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

言い換えると、強制順序が equals と一致する場合、メソッドの等価関係で定義される等価クラスと、メソッドの equalscompare によって定義される等価クラスは同じです。

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

このインターフェイスは、 Java Collections Framework のメンバーです。

1.2 に追加されました。

java.util.ComparatorJava ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

プロパティ

Handle

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

(継承元 IJavaObject)
JniIdentityHashCode

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

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniPeerMembers

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

(継承元 IJavaPeerable)
PeerReference

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

(継承元 IJavaPeerable)

メソッド

Compare(Object, Object)

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

Comparing(IFunction)

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

Comparing(IFunction, IComparator)

Tから並べ替えキーを抽出し、指定した Comparatorを使用してその並べ替えキーで比較する を返す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)

他のオブジェクトが量子 &かどうかを示します。" と等しい。この比較子。

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)

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

ThenComparing(IFunction, IComparator)

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

ThenComparingDouble(IToDoubleFunction)

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

ThenComparingInt(IToIntFunction)

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

ThenComparingLong(IToLongFunction)

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

UnregisterFromRuntime()

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

(継承元 IJavaPeerable)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

適用対象