Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java API 和框架

Java 類參考

Java 有用資源

Java - Hashtable 類



Hashtable 是原始 java.util 的一部分,是 Dictionary 的具體實現。

但是,Java 2 重新設計了 Hashtable,使其也實現了 Map 介面。因此,Hashtable 現在已整合到集合框架中。它類似於 HashMap,但它是同步的。

與 HashMap 類似,Hashtable 將鍵/值對儲存在雜湊表中。使用 Hashtable 時,您指定用作鍵的物件以及您希望連結到該鍵的值。然後對鍵進行雜湊處理,並將生成的雜湊碼用作在表中儲存值的索引。

以下是 Hashtable 類提供的建構函式列表。

序號 建構函式和描述
1

Hashtable( )

這是雜湊表的預設建構函式,它例項化 Hashtable 類。

2

Hashtable(int size)

此建構函式接受一個整數引數,並建立一個雜湊表,該雜湊表具有由整數 value size 指定的初始大小。

3

Hashtable(int size, float fillRatio)

這將建立一個雜湊表,該雜湊表具有由 size 指定的初始大小和由 fillRatio 指定的填充率。此比率必須介於 0.0 和 1.0 之間,它決定了雜湊表在向上調整大小之前可以填充的程度。

4

Hashtable(Map < ? extends K, ? extends V > t)

這將使用給定的對映構造一個 Hashtable。

除了 Map 介面定義的方法之外,Hashtable 還定義了以下方法:

序號 方法和描述
1

void clear( )

重置並清空雜湊表。

2

Object clone( )

返回呼叫物件的副本。

3

boolean contains(Object value)

如果雜湊表中存在某個等於 value 的值,則返回 true。如果未找到該值,則返回 false。

4

boolean containsKey(Object key)

如果雜湊表中存在某個等於 key 的鍵,則返回 true。如果未找到該鍵,則返回 false。

5

boolean containsValue(Object value)

如果雜湊表中存在某個等於 value 的值,則返回 true。如果未找到該值,則返回 false。

6

Enumeration elements( )

返回雜湊表中包含的值的列舉。

7

Object get(Object key)

返回包含與 key 關聯的值的物件。如果 key 不在雜湊表中,則返回 null 物件。

8

boolean isEmpty( )

如果雜湊表為空,則返回 true;如果它包含至少一個鍵,則返回 false。

9

Enumeration keys( )

返回雜湊表中包含的鍵的列舉。

10

Object put(Object key, Object value)

將鍵和值插入雜湊表。如果 key 不在雜湊表中,則返回 null;如果 key 已經在雜湊表中,則返回與 key 關聯的先前值。

11

void rehash( )

增加雜湊表的大小並重新雜湊其所有鍵。

12

Object remove(Object key)

刪除鍵及其值。返回與鍵關聯的值。如果 key 不在雜湊表中,則返回 null 物件。

13

int size( )

返回雜湊表中條目的數量。

14

String toString( )

返回雜湊表的字串等價物。

示例

以下程式說明了此資料結構支援的幾種方法:

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
java_data_structures.htm
廣告