ユーティリティ 1章 コレクション
1.3. java.util.Hashtable
「Hashtable」クラスはデータをキーと関連付けて記憶するクラスです。データの取得もキーを指定する事によって行います。1つのキーに対して記憶されるデータは1つです。同じキーに対して複数のデータを追加しようとすると、古いデータは上書きされます。ここでキーが同じであるというのは「equals」メソッドと「hashCode」メソッドによって判定されます。「equals」メソッドによって同じオブジェクトと判定され、かつ「hashCode」メソッドが同じハッシュ値を返す場合、キーは同じとみなされ古いデータは上書きされます。
「Hashtable」クラスのインスタンスの生成、およびデータの追加は以下のように行います。
Hashtable table = new Hashtable(); table.put(key, data);
「put」メソッドの第1引数がキーを意味するオブジェクト。第2引数がデータです。どちらの引数の型も「java.lang.Object」クラスで、Javaのオブジェクトならば何でもキー・データとする事ができます。
データの取得は「get」メソッドを使用します。「get」メソッドの返り値は「Object」型である点を注意してください。特定のクラスの型に代入するにはキャストしてやる必要があります。「Vector」の場合と同じといえます。
String data = (String)table.get(key);
「Hashtable」クラスにも「Vector」クラスと同じく可変個のデータを格納する事ができます。
(実習課題4)
- 予め「Hashtable」クラスのインスタンスに、人の苗字をキー、名前をデータとして記憶させておく事。最低、5人分のデータを記憶させる事。
- ウィンドウに表示されるコンポーネントは1つのラベルと、人数分のボタン。ボタンには「Hashtable」に記憶されているキーを表示させる事。
- ボタンを押すと、そのキーに対応するデータをラベルに表示するようにする事。