Hashtable クラス

定義

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

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

注釈

このクラスは、キーを値にマップするハッシュ テーブルを実装します。 非null オブジェクトは、キーまたは値として使用できます。

ハッシュテーブルからオブジェクトを正常に格納および取得するには、キーとして使用されるオブジェクトで メソッドと メソッドを hashCode 実装する equals 必要があります。

Hashtable インスタンスには、そのパフォーマンスに影響を与える 2 つのパラメーターがあります。 初期容量負荷係数です。 容量はハッシュ テーブル内のバケットの数であり、初期容量はハッシュ テーブルが作成された時点の容量です。 ハッシュ テーブルが かれていることに注意してください。"ハッシュ競合" の場合は、1 つのバケットに複数のエントリが格納されます。これは順番に検索する必要があります。 読み込み係数は、ハッシュ テーブルの容量が自動的に増える前に取得できる完全な量の測定値です。 初期容量と負荷係数のパラメーターは、実装のヒントにすぎません。 リハッシュ メソッドが呼び出されるタイミングと呼び出しの有無に関する正確な詳細は、実装に依存します。

一般に、既定の負荷係数 (.75) は、時間コストと空間コストの間で適切なトレードオフを提供します。 値を大きくすると、領域のオーバーヘッドは減少しますが、エントリを検索するための時間コストが増加します (これは、 や putを含むgetほとんどのHashtable操作に反映されます)。

初期容量は、無駄な領域と、時間のかかる操作の必要性 rehash とのトレードオフを制御します。 初期容量が、 に含まれるエントリの最大数をその負荷係数で割った値を超える場合、Hashtable操作は発生しませんrehash。 ただし、初期容量を高く設定すると、スペースが無駄になります。

多くのエントリを に Hashtable作成する場合、十分に大きな容量でエントリを作成すると、テーブルを拡張するために必要に応じて自動再ハッシュを実行するよりも、エントリをより効率的に挿入できる場合があります。

この例では、数値のハッシュテーブルを作成します。 数字の名前をキーとして使用します。

{@code
              Hashtable<String, Integer> numbers
                = new Hashtable<String, Integer>();
              numbers.put("one", 1);
              numbers.put("two", 2);
              numbers.put("three", 3);}

数値を取得するには、次のコードを使用します。

{@code
              Integer n = numbers.get("two");
              if (n != null) {
                System.out.println("two = " + n);
              }}

このクラスのすべての "コレクション ビュー メソッド" によって返されるコレクションのメソッドによってiterator返される反復子は><、fail-fast</em> です。反復子が作成された後、反復子が作成された後にいつでも Hashtable が構造的に変更された場合、反復子は remove をスローConcurrentModificationExceptionします。 したがって、同時変更に直面すると、反復子は、将来、決定論的でない任意の動作を危険にさらすのではなく、迅速かつクリーンに失敗します。 Hashtable #keys keys の メソッドと #elements elements メソッドによって返される列挙は<、em>not/em> fail-fast です<。列挙が作成された後にいつでも Hashtable が構造的に変更された場合、列挙の結果は未定義になります。

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

Java 2 プラットフォーム v1.2 の時点で、このクラスは インターフェイスを Map 実装するように改良され、 のメンバーになりました。

Java コレクション フレームワーク。 新しいコレクションの実装とは異なり、 Hashtable は同期されます。 スレッド セーフな実装が必要ない場合は、 のHashtable代わりに を使用HashMapすることをお勧めします。 スレッド セーフな高同時実行実装が必要な場合は、 のHashtable代わりに を使用java.util.concurrent.ConcurrentHashMapすることをお勧めします。

1.0 に追加されました。

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

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

Hashtable()

既定の初期容量 (11) と読み込み係数 (0) を使用して、新しい空のハッシュテーブルを構築します。

Hashtable(IDictionary)

指定されたマップと同じマッピングを使用して、新しいハッシュテーブルを構築します。

Hashtable(Int32)

指定された初期容量と既定の読み込み係数 (0) を使用して、新しい空のハッシュテーブルを構築します。

Hashtable(Int32, Single)

指定した初期容量と指定した読み込み係数を使用して、新しい空のハッシュテーブルを構築します。

Hashtable(IntPtr, JniHandleOwnership)

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

プロパティ

Class

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

(継承元 Object)
Handle

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

(継承元 Object)
IsEmpty

このハッシュテーブルが値にキーをマップしていないかどうかをテストします。

JniIdentityHashCode

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

(継承元 Object)
JniPeerMembers

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

PeerReference

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

(継承元 Object)
ThresholdClass

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

ThresholdType

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

メソッド

Clear()

キーが含まれないように、このハッシュテーブルをクリアします。

Clone()

このハッシュテーブルの簡易コピーを作成します。

Compute(Object, IBiFunction)

追加する

ComputeIfAbsent(Object, IFunction)

追加する

ComputeIfPresent(Object, IBiFunction)

追加する

Contains(Object)

一部のキーがこのハッシュテーブルの指定された値にマップされているかどうかをテストします。

ContainsKey(Object)

指定したオブジェクトがこのハッシュテーブルのキーであるかどうかをテストします。

ContainsValue(Object)

このハッシュテーブルが 1 つ以上のキーをこの値にマップする場合は true を返します。

Dispose()

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

(継承元 Object)
Dispose(Boolean)

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

(継承元 Object)
Elements()

このハッシュテーブル内の値の列挙を返します。

EntrySet()

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

Equals(Object)

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

(継承元 Object)
ForEach(IBiConsumer)

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

Get(Object)

指定したキーがマップされている値を返します。この null マップにキーのマッピングが含まれない場合は を返します。

GetHashCode()

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

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

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

JavaFinalize()

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

(継承元 Object)
Keys()

このハッシュテーブル内のキーの列挙を返します。

KeySet()

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

Merge(Object, Object, IBiFunction)

追加する

Notify()

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

(継承元 Object)
NotifyAll()

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

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

指定した key を、このハッシュテーブルで指定された value にマップします。

PutAll(IDictionary)

指定したマップからこのハッシュテーブルにすべてのマッピングをコピーします。

PutIfAbsent(Object, Object)

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

Rehash()

エントリに対応し、より効率的にアクセスするために、このハッシュテーブルの容量を増やし、内部的に再構成します。

Remove(Object)

このハッシュテーブルからキー (およびその対応する値) を削除します。

Remove(Object, Object)

このハッシュテーブルからキー (およびその対応する値) を削除します。

Replace(Object, Object)

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

Replace(Object, Object, Object)

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

ReplaceAll(IBiFunction)

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

SetHandle(IntPtr, JniHandleOwnership)

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

(継承元 Object)
Size()

このハッシュテーブル内のキーの数を返します。

ToArray<T>()

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

(継承元 Object)
ToString()

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

(継承元 Object)
UnregisterFromRuntime()

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

(継承元 Object)
Values()

このマップに Collection 含まれる値のビューを返します。

Wait()

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。

(継承元 Object)
Wait(Int64)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

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

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

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

IJavaPeerable.Disposed()

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

(継承元 Object)
IJavaPeerable.Finalized()

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

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

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

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

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

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

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

GetJniTypeName(IJavaPeerable)

このクラスは、キーを値にマップするハッシュ テーブルを実装します。

適用対象