IComparator インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オブジェクトの一部のコレクションに 対して合計順序 を適用する比較関数。
[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
によって課される順序は、 のすべての と のブール値e2
S
e1.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 を返します (ツリー セットのサイズが大きくなります)。a
b
これは、 メソッドの指定に反していても、 と はツリー セットのSet#add Set.add
観点からは同等ではありません。
注: 通常、比較子は、シリアル化可能なデータ構造 (、 などTreeSet
TreeMap
) の順序付けメソッドとして使用できるため、 も実装java.io.Serializable
することをお勧めします。 データ構造を正常にシリアル化するには、比較子 (指定されている場合) で を実装 Serializable
する必要があります。
数学的傾斜の場合、特定の比較子c
が特定のオブジェクトS
セットに課す強制順序を定義する関係は次のとおりです。
{(x, y) such that c.compare(x, y) <= 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 と一致する場合、メソッドの等価関係で定義される等価クラスと、メソッドの equals
商 compare
によって定義される等価クラスは同じです。
とは異なり Comparable
、比較子は必要に応じて null 引数の比較を許可しながら、等価関係の要件を維持できます。
このインターフェイスは、 Java Collections Framework のメンバーです。
1.2 に追加されました。
の java.util.Comparator
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
プロパティ
Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
JniIdentityHashCode |
ラップされたインスタンスの の |
JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
PeerReference |
JniObjectReferenceラップされた Java オブジェクト インスタンスの を返します。 (継承元 IJavaPeerable) |
メソッド
Compare(Object, Object) |
順序の 2 つの引数を比較します。 |
Comparing(IFunction) |
型 |
Comparing(IFunction, IComparator) |
型 |
ComparingDouble(IToDoubleFunction) |
型 |
ComparingInt(IToIntFunction) |
型 |
ComparingLong(IToLongFunction) |
型 |
Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 を呼び出 |
Equals(Object) |
他のオブジェクトが量子 &かどうかを示します。" と等しい。この比較子。 |
Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
NaturalOrder() |
オブジェクトを自然な順序で比較する |
NullsFirst(IComparator) |
null 以外の値より小さいと見な |
NullsLast(IComparator) |
null 以外の値より大きいと見な |
Reversed() |
この比較子の逆順を強制する比較子を返します。 |
ReverseOrder() |
em 自然順序/em>の逆を強制する比較子を<返します>。< |
SetJniIdentityHashCode(Int32) |
によって返される値を |
SetJniManagedPeerState(JniManagedPeerStates) |
オブジェクトの一部のコレクションに 対して合計順序 を適用する比較関数。 (継承元 IJavaPeerable) |
SetPeerReference(JniObjectReference) |
によって返される値を |
ThenComparing(IComparator) |
別の比較子を持つ辞書順比較子を返します。 |
ThenComparing(IFunction) |
並べ替えキーを抽出する関数を持つ辞書順序比較子を |
ThenComparing(IFunction, IComparator) |
指定 |
ThenComparingDouble(IToDoubleFunction) |
並べ替えキーを抽出する関数を持つ辞書順序比較子を |
ThenComparingInt(IToIntFunction) |
並べ替えキーを抽出する関数を持つ辞書順序比較子を |
ThenComparingLong(IToLongFunction) |
並べ替えキーを抽出する関数を持つ辞書順序比較子を |
UnregisterFromRuntime() |
ランタイムが今後 Java.Interop.JniRuntime+JniValueManager.PeekValue の呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
オブジェクトの一部のコレクションに 対して合計順序 を適用する比較関数。 |
GetJniTypeName(IJavaPeerable) |
オブジェクトの一部のコレクションに 対して合計順序 を適用する比較関数。 |