java.lang.Object | +--java.util.Hashtable
このクラスは、ハッシュテーブルを実装するためのもので、キーを値にマップします。null
オブジェクト以外であれば、どのオブジェクトでもキーや値に使用することができます。
ハッシュテーブルにオブジェクトを格納したり、そこから取り出したりするには、キーとして使用するオブジェクトに、hashCode
メソッドと equals
メソッドが実装されていなければなりません。
Hashtable
のインスタンスには、その性能に影響する「容量」および「負荷係数」という 2 つのパラメータがあります。負荷係数の範囲は、0.0 〜 1.0 です。ハッシュテーブルのエントリ数が負荷係数と現在の容量との積を超えた場合は、rehash
メソッドを呼び出すことによって容量を増やすことができます。負荷係数を大きくすると、メモリをより効率的に使用できますが、その代わりに 1 回の参照に対する時間が長くなります。
Hashtable
に多くのエントリを入れる場合は、このテーブルを十分に大きな容量で作成する方が、必要に応じてハッシュを自動的にやり直してテーブルを大きくするよりも、エントリを効率的に挿入することができます。
この例は、数値のハッシュテーブルを作成するものです。この例では、数値の名前をキーとして使います。
Hashtable numbers = new Hashtable(); numbers.put("one", new Integer(1)); numbers.put("two", new Integer(2)); numbers.put("three", new Integer(3));
数値を取り出すには、次のコードを使います。
Integer n = (Integer)numbers.get("two"); if (n != null) { System.out.println("two = " + n); }
Object.equals(java.lang.Object)
,
Object.hashCode()
,
rehash()
コンストラクタの概要 | |
Hashtable()
デフォルトの容量および負荷係数で新しい空のハッシュテーブルを作成します。 |
|
Hashtable(int initialCapacity)
指定された初期容量で新しい空のハッシュテーブルを作成します。 |
メソッドの概要 | |
void |
clear()
このハッシュテーブルを消去して、キーがない状態にします。 |
boolean |
contains(Object value)
指定された値にマップされているキーが、ハッシュテーブルにあるかどうかを判定します。 |
boolean |
containsKey(Object key)
指定されたオブジェクトが、ハッシュテーブルのキーかどうかを判定します。 |
Enumeration |
elements()
ハッシュテーブルにある値のリストを返します。 |
Object |
get(Object key)
指定されたキーにマップされている、ハッシュテーブルの値を返します。 |
boolean |
isEmpty()
値にマップされているキーが、ハッシュテーブルにあるかどうかを判定します。 |
Enumeration |
keys()
ハッシュテーブルにあるキーのリストを返します。 |
Object |
put(Object key,
Object value)
ハッシュテーブルにおいて、指定された key を、指定された value にマップします。 |
protected void |
rehash()
ハッシュテーブルの内容に対してハッシュをやり直して、より大きい容量のハッシュテーブルに格納します。 |
Object |
remove(Object key)
キー (およびそれに対応する値) をハッシュテーブルから削除します。 |
int |
size()
ハッシュテーブルにあるキーの数を返します。 |
String |
toString()
このハッシュテーブルの文字列表現を比較的長い形式で返します。 |
クラス java.lang.Object から継承したメソッド |
equals,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
コンストラクタの詳細 |
public Hashtable(int initialCapacity)
initialCapacity
- ハッシュテーブルの初期容量public Hashtable()
メソッドの詳細 |
public int size()
public boolean isEmpty()
true
、そうでない場合は false
public Enumeration keys()
Enumeration
,
elements()
public Enumeration elements()
Enumeration
,
keys()
public boolean contains(Object value)
containsKey
メソッドよりも負荷がかかります。value
- 検索する値value
引数にマップされている場合は true
、そうでない場合は false
null
の場合containsKey(java.lang.Object)
public boolean containsKey(Object key)
key
- 可能なキーtrue
、そうでない場合は false
contains(java.lang.Object)
public Object get(Object key)
key
- ハッシュテーブルのキーnull
put(java.lang.Object, java.lang.Object)
protected void rehash()
public Object put(Object key, Object value)
key
を、指定された value
にマップします。 キーや値は null
にすることはできません。
この値は、元のキーと等しいキーを指定して get
メソッドを呼び出すことによって取り出すことができます。
key
- ハッシュテーブルキーvalue
- 値null
null
の場合Object.equals(java.lang.Object)
,
get(java.lang.Object)
public Object remove(Object key)
key
- 削除するキーnull
public void clear()
public String toString()