次の方法で共有


HashMap クラス

定義

インターフェイスのハッシュ テーブル ベースの Map 実装。

[Android.Runtime.Register("java/util/HashMap", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class HashMap : Java.Util.AbstractMap, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable
[<Android.Runtime.Register("java/util/HashMap", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type HashMap = class
    inherit AbstractMap
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ICloneable
    interface IMap
継承
派生
属性
実装

注釈

インターフェイスのハッシュ テーブル ベースの Map 実装。 この実装では、オプションのすべてのマップ操作が提供され、値とキーがnull許可nullされます。 (クラスは HashMap 、非同期であり、null を許可する点を除いて、ほぼ同じです Hashtable)。このクラスは、マップの順序について保証しません。特に、順序が時間の経過と同時に一定であることを保証するものではありません。

この実装は、ハッシュ関数がバケット間で要素を適切に分散すると仮定して、基本的な操作 (get および put) に一定時間のパフォーマンスを提供します。 コレクション ビューを反復処理するには、インスタンスの "容量" (バケットの HashMap 数) とそのサイズ (キーと値のマッピングの数) に比例する時間が必要です。 したがって、反復パフォーマンスが重要な場合は、初期容量を高く設定しすぎないようにすることが非常に重要です (または、負荷係数が低すぎます)。

インスタンス HashMap には、そのパフォーマンスに影響を与える 2 つのパラメーター ( 初期容量負荷係数) があります。 容量ハッシュ テーブル内のバケットの数であり、初期容量はハッシュ テーブルが作成された時点の容量です。 読み込み係数は、ハッシュ テーブルの容量が自動的に増加する前に、どの程度完全に取得できるかを示す測定値です。 ハッシュ テーブル内のエントリの数が負荷係数と現在の容量の積を超えると、ハッシュ テーブルが 再ハッシュされます (つまり、内部データ構造が再構築されます)。

一般に、既定の負荷係数 (.75) は、時間コストとスペース コストの間で良好なトレードオフを提供します。 値を大きくすると、領域のオーバーヘッドは減少しますが、ルックアップ コストは増加します (クラスのHashMapほとんどの操作に反映されます。これには、次のものが含まれますgetput)。 リハッシング操作の数を最小限に抑えるために、初期容量を設定するときに、マップ内の予想されるエントリ数とその負荷係数を考慮する必要があります。 初期容量が、読み込み係数で割ったエントリの最大数を超える場合、リハッシュ操作は発生しません。

多数のマッピングをインスタンスに HashMap 格納する場合は、十分に大きな容量でマッピングを作成すると、テーブルを拡張するために必要に応じて自動再ハッシュを実行するよりも、マッピングをより効率的に格納できます。 同じ hashCode() キーを多数使用すると、ハッシュ テーブルのパフォーマンスを低下させる確実な方法であることに注意してください。 影響を改善するために、キーがある場合、このクラスでは Comparableキー間の比較順序を使用して、結び付けを解除できます。

<strong>この実装は同期されないことに注意してください。</strong> 複数のスレッドがハッシュ マップに同時にアクセスし、少なくとも 1 つのスレッドがマップを構造的に変更する場合は、 外部で同期する必要があります 。 (構造変更とは、1 つ以上のマッピングを追加または削除する操作です。インスタンスに既に含まれているキーに関連付けられている値を変更するだけでは、構造変更ではありません)。これは通常、マップを自然にカプセル化するオブジェクトを同期することによって実現されます。

このようなオブジェクトが存在しない場合は、メソッドを使用してマップを "ラップ" する Collections#synchronizedMap Collections.synchronizedMap 必要があります。 これは、マップへの誤った同期されていないアクセスを防ぐために、作成時に行うのが最善です。

Map m = Collections.synchronizedMap(new HashMap(...));

このクラスのすべての "コレクション ビュー メソッド" によって返される反復子は、フェイル ファストです。反復子が作成された後にいつでもマップが構造的に変更された場合、反復子の独自removeのメソッドを介した場合を除き、反復子は > をConcurrentModificationExceptionスローします。 したがって、同時変更が発生した場合、反復子は、将来不確定な時点で任意の非決定論的な動作を危険にさらすのではなく、迅速かつクリーンに失敗します。

反復子のフェイルファスト動作は、一般的に言えば、非同期の同時変更がある場合にハード保証を行うことができないため、保証できないことに注意してください。 フェイルファスト反復子はベスト エフォートベースでスロー ConcurrentModificationException します。 したがって、正しさ のためにこの例外に依存するプログラムを記述するのは間違っています。反復子のフェイルファスト動作はバグを検出するためにのみ使用する必要があります。

このクラスは、Java Collections Framework の メンバーです

1.2 で追加されました。

の Java ドキュメントjava.util.HashMap

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

HashMap()

既定の初期容量 (16) と既定の負荷係数 (0) を使用して空 HashMap を構築します。

HashMap(IDictionary)

指定したマッピングと同じマッピングを持つ新規 HashMap を構築します Map

HashMap(Int32)

指定した初期容量と既定の負荷係数 (0) を使用して空 HashMap を構築します。

HashMap(Int32, Single)

指定した初期容量と負荷係数を持つ空 HashMap を構築します。

HashMap(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

プロパティ

Class

この Objectランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
IsEmpty

追加する

(継承元 AbstractMap)
JniIdentityHashCode

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
JniPeerMembers

インターフェイスのハッシュ テーブル ベースの Map 実装。

PeerReference

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

Clear()

追加する

(継承元 AbstractMap)
Clone()

この HashMap インスタンスの簡易コピーを返します。キーと値自体は複製されません。

Compute(Object, IBiFunction)

インターフェイスのハッシュ テーブル ベースの Map 実装。

ComputeIfAbsent(Object, IFunction)

インターフェイスのハッシュ テーブル ベースの Map 実装。

ComputeIfPresent(Object, IBiFunction)

インターフェイスのハッシュ テーブル ベースの Map 実装。

ContainsKey(Object)

追加する

(継承元 AbstractMap)
ContainsValue(Object)

追加する

(継承元 AbstractMap)
Dispose()

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
Dispose(Boolean)

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
EntrySet()

このマップに Set 含まれるマッピングのビューを返します。

Equals(Object)

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

(継承元 Object)
ForEach(IBiConsumer)

インターフェイスのハッシュ テーブル ベースの Map 実装。

Get(Object)

追加する

(継承元 AbstractMap)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
GetOrDefault(Object, Object)

インターフェイスのハッシュ テーブル ベースの Map 実装。

JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
KeySet()

追加する

(継承元 AbstractMap)
Merge(Object, Object, IBiFunction)

インターフェイスのハッシュ テーブル ベースの Map 実装。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
Put(Object, Object)

追加する

(継承元 AbstractMap)
PutAll(IDictionary)

追加する

(継承元 AbstractMap)
PutIfAbsent(Object, Object)

インターフェイスのハッシュ テーブル ベースの Map 実装。

Remove(Object)

追加する

(継承元 AbstractMap)
Remove(Object, Object)

指定したキーのマッピングが存在する場合は、このマップから削除します。

Replace(Object, Object)

インターフェイスのハッシュ テーブル ベースの Map 実装。

Replace(Object, Object, Object)

インターフェイスのハッシュ テーブル ベースの Map 実装。

ReplaceAll(IBiFunction)

インターフェイスのハッシュ テーブル ベースの Map 実装。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
Size()

追加する

(継承元 AbstractMap)
ToArray<T>()

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
ToString()

オブジェクトの文字列表現を返します。

(継承元 Object)
UnregisterFromRuntime()

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
Values()

追加する

(継承元 AbstractMap)
Wait()

現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。

(継承元 Object)
Wait(Int64)

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

IJavaPeerable.Disposed()

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
IJavaPeerable.Finalized()

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

インターフェイスのハッシュ テーブル ベースの Map 実装。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

インターフェイスのハッシュ テーブル ベースの Map 実装。

GetJniTypeName(IJavaPeerable)

インターフェイスのハッシュ テーブル ベースの Map 実装。

適用対象