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
- 派生
- 属性
- 実装
注釈
オブジェクトの一部のコレクションに 対して合計順序 を設定する比較関数。 比較子を並べ替えメソッド ( Collections#sort(List,Comparator) Collections.sort や Arrays#sort(Object[],Comparator) Arrays.sortなど) に渡して、並べ替え順序を正確に制御できます。 比較子を使用して、特定のデータ構造 (SortedSet の並べ替えられたセットや SortedMap の並べ替えられたマップなど) の順序を制御したり、同等の自然な順序を持たないオブジェクトのコレクションの順序を指定したりすることもできます。
S一連の要素に対するコンパレータcによって課される順序は、c.compare(e1, e2)==0がすべてのe1およびSのe2に対してe1.equals(e2)と同じブール値を持つ場合にのみ等しいと言われます。
並べ替えられたセット (または並べ替えられたマップ) の順序と等しい順序に一致しない順序を設定できる比較器を使用する場合は、注意が必要です。 明示的な比較子 c を持つ並べ替えられたセット (または並べ替えられたマップ) が、セット Sから描画された要素 (またはキー) で使用されるとします。
Sのcによって課される順序が等しいと一致しない場合、並べ替えられたセット (または並べ替えられたマップ) は "奇妙に" 動作します。 特に、並べ替えられたセット (または並べ替えられたマップ) は、 equalsの観点から定義されたセット (またはマップ) の一般的なコントラクトに違反します。
たとえば、1 つは、比較子cを持つ空のTreeSetに(a.equals(b) && c.compare(a, b) != 0)するように、2 つの要素aとbを追加するとします。 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}.
これは、商がSに対する等価関係であり、課された順序がSの合計注文であることをcompareの契約から直ちに従います。
Sのcによって課される順序が等しいと言うとき、順序付けの商はオブジェクトの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 |
ラップされたインスタンスの |
| JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
| JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
| PeerReference |
ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。 (継承元 IJavaPeerable) |
メソッド
| 名前 | 説明 |
|---|---|
| Compare(Object, Object) |
順序の 2 つの引数を比較します。 |
| Comparing(IFunction, IComparator) |
型 |
| Comparing(IFunction) |
型 |
| ComparingDouble(IToDoubleFunction) |
型 |
| ComparingInt(IToIntFunction) |
型 |
| ComparingLong(IToLongFunction) |
型 |
| Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
| DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 |
| Equals(Object) |
他のオブジェクトが > かどうかを示します。equal to>このコンパレータ。 |
| Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
| NaturalOrder() |
|
| NullsFirst(IComparator) |
|
| NullsLast(IComparator) |
|
| Reversed() |
このコンパレータの逆順序を強制するコンパレータを返します。 |
| ReverseOrder() |
<em>自然順序</em>の逆を強制するコンパレータを返します。 |
| SetJniIdentityHashCode(Int32) |
|
| SetJniManagedPeerState(JniManagedPeerStates) |
オブジェクトの一部のコレクションに 対して合計順序 を設定する比較関数。 (継承元 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
|
| ThenComparing(IComparator) |
別のコンパレータを持つ辞書式比較子を返します。 |
| ThenComparing(IFunction, IComparator) |
指定された |
| ThenComparing(IFunction) |
|
| ThenComparingDouble(IToDoubleFunction) |
|
| ThenComparingInt(IToIntFunction) |
|
| ThenComparingLong(IToLongFunction) |
|
| UnregisterFromRuntime() |
ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
オブジェクトの一部のコレクションに 対して合計順序 を設定する比較関数。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|