JavaのHashtableのインターフェイス
ハッシュテーブルは、元java.utilでの一部は辞書具体的な実装です。
ただし、Java 2再建のHashtableがMapインタフェースを実装していますので、Hashtableのは今コレクションフレームワークに統合されています。 これは、HashMapのクラスは非常に似ていますが、同期をサポートします。
同様のHashMapと同様に、ハッシュテーブル内のHashtableは、キー/値のペアを格納します。 キーとしてオブジェクトを指定するには、ハッシュテーブルを使用して、とするときは、債券の値にリンクしたいです。
そして、キーはハッシュされ、得られたハッシュ・コードは、テーブル内の値を格納するための指標として使用されます。
ハッシュテーブルは、4つのコンストラクタを定義します。 最初は、デフォルトのコンストラクタです。
Hashtable()
第二のコンストラクタは、ハッシュテーブル指定したサイズを作成します。
Hashtable(int size)
第三のコンストラクタは、ハッシュテーブルの指定したサイズを作成し、fillRatioによってフィル割合を指定します。
充填率は、リサイズ前にハッシュテーブルの全範囲を決定する、0.0と1.0の間でなければなりません。
Hashtable(int size,float fillRatio)
第四のコンストラクタは、ハッシュテーブル内のM元素の要素が初期化されて作成されます。
ハッシュテーブルの容量は、Mのを倍に設定されています。
Hashtable(Map m)
Mapインタフェースで定義された方法に加えて、ハッシュテーブルだけでなく、次のメソッドを定義します。
いいえ。 | メソッド説明 |
---|---|
1 | 明確無効() 、キーがないように、このハッシュテーブルをクリアします。 |
2 | オブジェクトのクローン() このハッシュテーブルの簡易コピーを作成します。 |
3 | ブール値が含まれている(Object値) 指定されたキーのテストこのマッピングテーブルに関連付けられた値が存在するかどうか。 |
4 | ブールのcontainsKey(オブジェクトキー) 指定されたオブジェクトが、ハッシュテーブルのキーである場合。 |
5 | ブールのcontainsValue(Object値) このハッシュテーブルがこの値に1つ以上のキーをマッピングする場合は、trueを返します。 |
6 | 列挙要素() ハッシュテーブルの列挙値を返します。 |
7 | オブジェクトのget(オブジェクトキー) 値vマッピングにキーkから指定されたキーをこのマップがこのキーのマッピングを保持していない場合、それはnullを返します。より正式には、このマップは(key.equals(k)を)含まれている場合は、値にマッピングされている返します、その後、この方法は、V返し、それ以外の場合はnullを返します。 |
8 | ブールのisEmpty() テストこのハッシュテーブルは、値に何のキーをマッピングしていない場合。 |
9 | 列挙キー() ハッシュテーブルのキーのリストを返します。 |
10 | オブジェクトプット(オブジェクトキー、Object値 ) 指定されたキーは、ハッシュテーブル指定された値にマップされます。 |
11 | ボイド焼き直し() より良い適応とその要素にアクセスするには、ハッシュテーブルの容量とその内部の再編成を増やします。 |
12 | オブジェクト削除(オブジェクトキー) ハッシュテーブルからキーとその対応する値を削除します。 |
13 | int型のサイズ() このハッシュテーブルにあるキーの数を返します。 |
14 | 文字列のtoString() 中括弧で囲まれたASCII文字分離 "、"(コンマとスペース)、の形やエントリのセットでHashtableオブジェクトの文字列表現を返します。 |
例
次のプログラムは、このデータ構造は、いくつかのメソッドをサポートして示しています。
import java.util.*; public class HashTableDemo { public static void main(String args[]) { // Create a hash map Hashtable balance = new Hashtable(); Enumeration names; String str; double bal; balance.put("Zara", new Double(3434.34)); balance.put("Mahnaz", new Double(123.22)); balance.put("Ayan", new Double(1378.00)); balance.put("Daisy", new Double(99.22)); balance.put("Qadir", new Double(-19.08)); // Show all balances in hash table. names = balance.keys(); while(names.hasMoreElements()) { str = (String) names.nextElement(); System.out.println(str + ": " + balance.get(str)); } System.out.println(); // Deposit 1,000 into Zara's account bal = ((Double)balance.get("Zara")).doubleValue(); balance.put("Zara", new Double(bal+1000)); System.out.println("Zara's new balance: " + balance.get("Zara")); } }
次のような結果をコンパイルした上記の例は次のとおりです。
Qadir: -19.08 Zara: 3434.34 Mahnaz: 123.22 Daisy: 99.22 Ayan: 1378.0 Zara's new balance: 4434.34