Okapi Project

Hashtable クラス(はっしゅてーぶる)

バージョン
2003 年 10 月 25 日 Ver.1.0
作成者
H.Izumi ( Xware )

目的

大量のデータの中から必要なデータを便利に検索したい!

Hashtable ってなに?

Hashtable は大量のデータから目的のデータを高速に検索する機能を持っているクラスです。Hashtale では Vector と異なり、同じキーのデータを複数保持することができません。もしも同じキーのデータを指定したときには、古いオブジェクトは新しいオブジェクトで上書きされます。
 Hashtableは、沢山のものの中から一つのものを選ぶという仕事を、コンピュータにとって効率的に行おうとするための工夫がなされています。

Hashtable の説明

Hashtable クラスの主なメソッドの一部の例です。

void clear()
この Hashtable をクリアしてキーがない状態にする。
Object clone()
この Hashtable のコピーを取得する。
Enumeration elements()
この Hashtable に含まれいる値の列挙を取得する。
boolean equals(Object o)
指定のオブジェクトと、このマップが等しいかどうか比べる。
Object get(Object key)
この Hashtable で指定のキーがマッピングされている値を取得する。
boolean isEmpty()
この Hashtable でキーが値にマッピングされていないかどうか調べる。
Set keySet()
この Hashtable に含まれているキーのセットビューを取得する。
Object put(Object Key, Object value)
この Hashtable で指定のキーを指定の値にマッピングする。
void putAll(Map t)
指定のマップ全てのマッピングをこの Hashtable にコピーする。

Hashtable の使い方

以下は、キーと値を put メソッド、get メソッドを使用して格納・取得するプログラムの例です。

import java.util.*;

public class HashTableTest {
    public static void main(String[] args) {
        //HashTableのインスタンスを作成
        Hashtable ht = new Hashtable();
        ht.put("test1", "case1");
        ht.put("test2", "case2");
        ht.put("test3", "case3");
        ht.put("test4", "case4");
        ht.put("test5", "case5");

        Enumeration keys = ht.keys();

        while (keys.hasMoreElements()) {
            String key = (String) keys.nextElement();
            System.out.println(key + ht.get(key));
        }
    }
}

以下が実行結果になります。

test5case5
test4case4
test3case3
test2case2
test0case0

ポイント

ヒント

cache としての利用

Hashtable は、その性質を生かして、繰り返し利用されるリソースの cache としてよく使われます。例えば、大きなイメージデータは、ネットワーク上でやりとりすると時間がかかるのですが、プログラム中で一度使ったイメージを、 Hashtableにしまっておき、同じプログラム中で同じイメージに、再度要求があったら、こんどは、Hashtableからデータをとるというような使い方をします。

cache とは

通常 Web ブラウザは一度読みこんだデータを一旦保存しておきます。これを「キャッシュ (Cache)」といいます。ブラウザの「戻る」ボタンなどで再び同じデータをアクセスしたときにはこの保存しておいたデータを読み込むことができます。

関連


Copyright © 2003 - 2006 Okapi Project All Rights Reserved.