Java Hashtable 類別

介紹

你好,未來的 Java 巫師們!今天,我們將踏上一段令人興奮的旅程,進入 Java Hashtable 的世界。我知道你可能在想什麼:“Hashtable?這聽起來就像看油漆乾燥一樣刺激!”但相信我,一旦你了解 Hashtable 的威力,你會發現它們可以讓你的編程生活變得更加輕鬆。

Java - Hashtable

想象一下,你試圖整理你大量的橡膠小鴨收藏品(因為誰沒有一個,對吧?)。你可以把它們都扔進一個大箱子里,但那樣尋找你最喜歡的海盜橡膠小鴨將會是個夢魘。這就是 Hashtable 的用處所在——它就像給每隻小鴨分配一個標籤的架子,這樣你就可以立刻找到任何一隻小鴨!

類別聲明

讓我們從基礎開始。在 Java 中,Hashtable 是這樣聲明的:

public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, Serializable

不要讓這個把你嚇倒了!這只是 Java 的方式來說:“嘿,我是一個 Hashtable,我可以與不同類型的鍵(K)和值(V)一起工作。”把它想成一個智能容器,可以保存像名字(鍵)和電話號碼(值)這樣的東西。

類別構造器

現在,讓我們看看如何創建一個 Hashtable。這就像建造你的橡膠小鴨架子——你有幾個選項:

// 創建一個空的 Hashtable
Hashtable<String, Integer> duckCollection = new Hashtable<>();

// 創建一個具有初始容量的 Hashtable
Hashtable<String, Integer> bigDuckCollection = new Hashtable<>(100);

// 從另一個 Map 創建一個 Hashtable
Map<String, Integer> existingDucks = new HashMap<>();
Hashtable<String, Integer> copiedDucks = new Hashtable<>(existingDucks);

在第一個例子中,我們為我們的小鴨創建了一個空的架子。在第二個中,我們說:“我會有很多小鴨,所以讓我們做一個大架子!”在第三個中,我們從另一個收藏中複製小鴨。

類別方法

Hashtables 附帶了一個充滿有用方法的工具箱。讓我們探索其中的一些:

Hashtable<String, Integer> duckInventory = new Hashtable<>();

// 添加一隻小鴨
duckInventory.put("橡膠海盜小鴨", 5);

// 獲得海盜小鴨的數量
int pirateDucks = duckInventory.get("橡膠海盜小鴨");

// 檢查我們是否有忍者小鴨
boolean hasNinjaDucks = duckInventory.containsKey("橡膠忍者小鴨");

// 刪除所有小鴨(哦不!)
duckInventory.clear();

// 檢查我們的庫存是否為空
boolean isDucklessAndSad = duckInventory.isEmpty();

這些方法幫助我們管理我們的小鴨收藏。我們可以添加小鴨,檢查我們有多少隻,看看我們是否有特定的類型,清空我們的收藏(但為什麼要這麼做?),並檢查我們是否已經沒有小鴨了(這是一個悲劇!)。

繼承的方法

Hashtable 是 Java 中一個更大的家族的一部分,並從其親戚那裡繼承了一些方法。以下是 一些重要的繼承方法的表格:

方法 繼承自 描述
clone() Object 創建 Hashtable 的淺拷貝
equals(Object o) Object 將此 Hashtable 與另一個對象進行比較
hashCode() Object 返回此 Hashtable 的哈希碼
toString() Object 返回 Hashtable 的字符串表示形式
putAll(Map<? extends K,? extends V> t) Map 從指定的 Map 複製所有映射到此 Hashtable

這些方法就像是你小鴨架子的額外功能。你可以複製你的收藏,與其他收藏進行比較,獲得它的獨特代碼,將其轉換為描述,甚至一次添加一大批小鴨!

將映射添加到 Integer、Integer 對的 Hashtable 示例

讓我們將所有這些知識應用於一個更複雜的例子:

public class DuckCounter {
public static void main(String[] args) {
// 創建一個 Hashtable 來存儲小鴨類型及其數量
Hashtable<Integer, Integer> duckCensus = new Hashtable<>();

// 添加一些小鴨數量
duckCensus.put(1, 10);  // 小鴨類型 1:10 隻小鴨
duckCensus.put(2, 15);  // 小鴨類型 2:15 隻小鴨
duckCensus.put(3, 5);   // 小鴨類型 3:5 隻小鴨

// 列印出我們的小鴨人口普查
System.out.println("小鴨人口普查: " + duckCensus);

// 讓我們添加更多類型 2 的小鴨
int currentType2Count = duckCensus.get(2);
duckCensus.put(2, currentType2Count + 5);

// 檢查我們的更新後的數量
System.out.println("更新後的小鴨人口普查: " + duckCensus);

// 哦不!所有類型 3 的小鴨都飛走了
duckCensus.remove(3);

// 最後的小鴨數量
System.out.println("最後的小鴨人口普查: " + duckCensus);
}
}

在這個例子中,我們使用一個 Hashtable 來跟蹤不同類型的小鴨。每個小鴨類型都被分配了一個數字(鍵),我們存儲小鴨的數量(值)。我們添加小鴨,更新他們的數字,甚至處理類型 3 的小鴨大逃亡!

當你運行這段代碼時,你會看到我們的小鴨群體隨著時間的變化。這就像是一個小鴨人口普查員,但更有趣,也不太可能會被生氣的水禽追逐。

就這樣,各位!你剛剛走出了 Java Hashtable 世界的第一步。記住,練習成就完美,所以不要害怕對你自己的小鴨……我的意思是,數據收藏進行實驗。快樂編程!

Credits: Image by storyset