IMap インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
キーを値にマップする オブジェクト。
[Android.Runtime.Register("java/util/Map", "", "Java.Util.IMapInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public interface IMap : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/Map", "", "Java.Util.IMapInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type IMap = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 派生
- 属性
- 実装
注釈
キーを値にマップする オブジェクト。 マップに重複するキーを含めることはできません。各キーは、最大 1 つの値にマップできます。
このインターフェイスは、 クラスの Dictionary
代わりに使用されます。これは、インターフェイスではなく完全に抽象的なクラスでした。
インターフェイスには Map
3 つの コレクション ビューが用意されています。これにより、マップのコンテンツをキーのセット、値のコレクション、またはキーと値のマッピングのセットとして表示できます。 マップの 順序 は、マップのコレクション ビューの反復子が要素を返す順序として定義されます。 クラスのような一部の TreeMap
マップ実装では、順序に関して特定の保証が行われます。他の HashMap
マップ実装は、クラスと同様に、特定の保証を行いません。
注: 変更可能なオブジェクトをマップ キーとして使用する場合は、細心の注意を払う必要があります。 オブジェクトがマップ内のキーである間に比較に影響を与 equals
える方法でオブジェクトの値が変更された場合、マップの動作は指定されません。 この禁止の特別なケースは、マップ自体をキーとして含めるのは許可されないことです。 マップ自体を値として含めるのは許容されますが、 メソッドと hashCode
メソッドはequals
、このようなマップで明確に定義されなくなりました。
すべての汎用マップ実装クラスでは、空のマップを作成する void (引数なし) コンストラクターと、 型 Map
の単一引数を持つコンストラクターという 2 つの "標準" コンストラクターを提供する必要があります。これにより、引数と同じキーと値のマッピングを持つ新しいマップが作成されます。 実際には、後者のコンストラクターを使用すると、ユーザーは任意のマップをコピーし、目的のクラスの同等のマップを生成できます。 (インターフェイスにコンストラクターを含めることはできません) この推奨事項を適用する方法はありませんが、JDK 内のすべての汎用マップ実装が準拠しています。
このインターフェイスに含まれる "破壊的" メソッド(つまり、操作対象のマップを変更するメソッド)は、このマップが操作をサポートしていない場合に スロー UnsupportedOperationException
するように指定されます。 この場合、呼び出しがマップに影響を与えない場合、これらのメソッドは をスロー UnsupportedOperationException
する可能性がありますが、必須ではありません。 たとえば、変更できないマップで メソッドを #putAll(Map)
呼び出すと、マッピングが "重ね合わされる" マップが空の場合、例外がスローされることがありますが、必須ではありません。
一部のマップ実装では、含まれる可能性があるキーと値に制限があります。 たとえば、一部の実装では null キーと値が禁止され、一部の実装ではキーの型に制限があります。 無効なキーまたは値を挿入しようとすると、チェックされていない例外 (通常 NullPointerException
は または ClassCastException
) がスローされます。 不適格なキーまたは値の存在を照会しようとすると、例外がスローされるか、単に false が返される可能性があります。一部の実装では以前の動作が示され、一部は後者を示します。 より一般的には、割り当て不可能なキーまたは値に対して操作を試みると、その完了によってマップに不適格な要素が挿入されない場合、実装のオプションで例外がスローされるか、成功する可能性があります。 このような例外は、このインターフェイスの仕様では "省略可能" としてマークされます。
Collections Framework インターフェイスの多くのメソッドは、 メソッドの Object#equals(Object) equals
観点から定義されています。 たとえば、 メソッドの仕様#containsKey(Object) containsKey(Object key)
では、"このマップに のような(key==null ? k==null : key.equals(k))
キーk
のマッピングが含まれている場合にのみ、 が返true
されます。 この仕様は、null 以外の引数key
key.equals(k)
を指定して をMap.containsKey
呼び出すと、キー k
に対して が呼び出されることを意味するものではありません。 実装では、2 つのキーのハッシュ コードを equals
最初に比較するなどして、呼び出しを回避する最適化を自由に実装できます。 (この仕様では Object#hashCode()
、ハッシュ コードが等しくない 2 つのオブジェクトを等しくすることはできません。より一般的には、さまざまな Collections Framework インターフェイスの実装は、実装者が適切と判断した場合に限り、基になる Object
メソッドの指定された動作を自由に利用できます。
マップの再帰的走査を実行する一部のマップ操作は、マップ自体が直接または間接的に含まれる自己参照インスタンスの例外で失敗することがあります。 これには、、、clone()
equals()
hashCode()
および toString()
メソッドが含まれます。 実装では、必要に応じて自己参照シナリオを処理できますが、最新の実装では処理されません。
<h2>"unmodifiable">Unmodifiable Maps</h2>
、Map#ofEntries(Map.Entry...) Map.ofEntries
、および Map#copyOf Map.copyOf
静的ファクトリ メソッドはMap#of() Map.of
、変更不可能なマップを作成するための便利な方法を提供します。 Map
これらのメソッドによって作成されるインスタンスには、次の特性があります。
<ul><li>彼らは私>は<変更できない</i>です。 キーと値を追加、削除、または更新することはできません。 Map でミューテーター メソッドを呼び出すと、常に UnsupportedOperationException
がスローされます。 ただし、含まれているキーまたは値自体が変更可能な場合は、マップの動作が一貫性が失われるか、その内容が変わる可能性があります。 <li>キーと値は許可されません null
。 キーまたは値を使用 null
してそれらを作成しようとすると、 が発生 NullPointerException
します。 <li>すべてのキーと値がシリアル化可能な場合はシリアル化可能です。 <li>作成時に重複するキーを拒否します。 静的ファクトリ メソッドに渡されたキーが重複すると、 が発生 IllegalArgumentException
します。 <li>マッピングの反復順序は指定されておらず、変更される可能性があります。 <li>値ベースです。 プログラマは、#equals(Object) と等しいインスタンスを交換可能として扱い、同期に使用しないでください。または、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 呼び出し元は、返されるインスタンスの ID に関する仮定を行う必要はありません。 ファクトリは、新しいインスタンスを自由に作成したり、既存のインスタンスを再利用したりできます。 <li>シリアル化されたフォーム ページで指定されたとおりに シリアル化されます 。 </ul>
このインターフェイスは、 Java Collections Framework のメンバーです。
1.2 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
プロパティ
Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
IsEmpty |
このマップが空かどうかを返します。 |
JniIdentityHashCode |
ラップされたインスタンスの の |
JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
PeerReference |
JniObjectReferenceラップされた Java オブジェクト インスタンスの を返します。 (継承元 IJavaPeerable) |
メソッド
Clear() |
このマップからすべてのマッピングを削除します (省略可能な操作)。 |
Compute(Object, IBiFunction) |
指定したキーとその現在のマップされた値のマッピングの計算を試みます (または |
ComputeIfAbsent(Object, IFunction) |
指定したキーがまだ値に関連付けられていない (または に |
ComputeIfPresent(Object, IBiFunction) |
指定したキーの値が存在し、null 以外の場合は、キーとその現在のマップされた値を指定して、新しいマッピングの計算を試みます。 |
ContainsKey(Object) |
このマップに |
ContainsValue(Object) |
このマップが 1 つ以上の |
CopyOf(IDictionary) |
指定された Map のエントリを含む変更不可能な Map を返します。 |
Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 を呼び出 |
Entry(Object, Object) |
指定されたキーと値を含む変更できない |
EntrySet() |
このマップに |
Equals(Object) |
指定したオブジェクトとこのマップを比較して等しいかどうかを確認します。 |
Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
ForEach(IBiConsumer) |
すべてのエントリが処理されるか、アクションによって例外がスローされるまで、このマップ内の各エントリに対して指定されたアクションを実行します。 |
Get(Object) |
指定したキーがマップされている値を返します。この |
GetHashCode() |
このマップのハッシュ コード値を返します。 |
GetOrDefault(Object, Object) |
指定したキーがマップされている値を返します。この |
KeySet() |
このマップに |
Merge(Object, Object, IBiFunction) |
指定したキーがまだ値に関連付けられていないか、null に関連付けられている場合は、指定された null 以外の値に関連付けます。 |
Of() |
0 個のマッピングを含む変更不可能なマップを返します。 |
Of(Object, Object) |
1 つのマッピングを含む変更不可能なマップを返します。 |
Of(Object, Object, Object, Object) |
2 つのマッピングを含む変更できないマップを返します。 |
Of(Object, Object, Object, Object, Object, Object) |
3 つのマッピングを含む変更不可能なマップを返します。 |
Of(Object, Object, Object, Object, Object, Object, Object, Object) |
4 つのマッピングを含む変更不可能なマップを返します。 |
Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
5 つのマッピングを含む変更できないマップを返します。 |
Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
6 つのマッピングを含む変更できないマップを返します。 |
Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
7 つのマッピングを含む変更不可能なマップを返します。 |
Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
8 つのマッピングを含む変更不可能なマップを返します。 |
Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
9 つのマッピングを含む変更不可能なマップを返します。 |
Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object) |
10 個のマッピングを含む変更不可能なマップを返します。 |
OfEntries(IMapEntry[]) |
指定されたエントリから抽出されたキーと値を含む変更できないマップを返します。 |
Put(Object, Object) |
指定した値を、このマップ内の指定したキーに関連付けます (省略可能な操作)。 |
PutAll(IDictionary) |
指定したマップからこのマップにすべてのマッピングをコピーします (省略可能な操作)。 |
PutIfAbsent(Object, Object) |
指定したキーがまだ値に関連付けられていない (または に |
Remove(Object) |
キーが存在する場合は、このマップからキーのマッピングを削除します (省略可能な操作)。 |
Remove(Object, Object) |
指定したキーのエントリが削除されるのは、指定した値に現在マップされている場合のみです。 |
Replace(Object, Object) |
指定したキーのエントリが、現在何らかの値にマップされている場合にのみ置き換えます。 |
Replace(Object, Object, Object) |
指定した値に現在マップされている場合にのみ、指定したキーのエントリを置き換えます。 |
ReplaceAll(IBiFunction) |
すべてのエントリが処理されるか、関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果に置き換えます。 |
SetJniIdentityHashCode(Int32) |
によって返される値を |
SetJniManagedPeerState(JniManagedPeerStates) |
キーを値にマップする オブジェクト。 (継承元 IJavaPeerable) |
SetPeerReference(JniObjectReference) |
によって返される値を |
Size() |
このマップ内のキーと値のマッピングの数を返します。 |
UnregisterFromRuntime() |
ランタイムが将来 Java.Interop.JniRuntime+JniValueManager.PeekValue の呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
Values() |
このマップに |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
キーを値にマップする オブジェクト。 |
GetJniTypeName(IJavaPeerable) |
キーを値にマップする オブジェクト。 |