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 の並べ替えられたマップなど) の順序を制御したり、同等の自然な順序を持たないオブジェクトのコレクションの順序を指定したりすることもできます。
一連の要素に対してコンパレータc
によって課される順序は、すべてのe2
S
e1
要素と同じブール値e1.equals(e2)
を持つ場合c.compare(e1, e2)==0
にのみ等しいと一致すると言われます。S
並べ替えられたセット (または並べ替えられたマップ) の順序と等しい順序に一致しない順序を設定できる比較器を使用する場合は、注意が必要です。 明示的な比較子 c
を持つ並べ替えられたセット (または並べ替えられたマップ) が、セット S
から描画された要素 (またはキー) と共に使用されるとします。 on S
によってc
課される順序が等しいと一致しない場合、並べ替えられたセット (または並べ替えられたマップ) は "奇妙に" 動作します。 特に、並べ替えられたセット (または並べ替えられたマップ) は、セット (またはマップ) の一般的なコントラクトに違反します。これは次の equals
点で定義されます。
たとえば、1 つは 2 つの要素を追加し、b
比較(a.equals(b) && c.compare(a, b) != 0)
子c
を持つ空TreeSet
の要素a
に追加するとします。 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
から直ちに従います。 onによって c
S
課される順序が等しいと言うとき、順序付けの商はオブジェクト Object#equals(Object) equals(Object)
のメソッドによって定義された等価関係であることを意味します。
{(x, y) such that x.equals(y)}.
言い換えると、強制順序が等しい場合、メソッドの等価関係によって定義される等価クラスと、メソッドの equals
商 compare
で定義された等価クラスは同じです。
比較器とは異なり Comparable
、必要に応じて、等価関係の要件を維持しながら、null 引数の比較を許可できます。
このインターフェイスは、Java Collections Framework の メンバーです。
1.2 で追加されました。
の Java ドキュメントjava.util.Comparator
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
プロパティ
Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
JniIdentityHashCode |
ラップされたインスタンスの |
JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
PeerReference |
ラップされた Java オブジェクト インスタンスの a JniObjectReference を返します。 (継承元 IJavaPeerable) |
メソッド
Compare(Object, Object) |
順序の 2 つの引数を比較します。 |
Comparing(IFunction) |
型 |
Comparing(IFunction, IComparator) |
型 |
ComparingDouble(IToDoubleFunction) |
型 |
ComparingInt(IToIntFunction) |
型 |
ComparingLong(IToLongFunction) |
型 |
Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、呼び出 |
Equals(Object) |
他のオブジェクトが > かどうかを示します。equal to>このコンパレータ。 |
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) |
オブジェクトの一部のコレクションに対して合計順序を設定する比較関数。 |