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);

最初の例では、鴨のための空の棚を作成しています。二つ目の例では、「鴨がたくさんあるので、大きな棚を作ろう」と言っています。そして、三つ目の例では、他のコレクションから鴨をコピーしています。

クラスのメソッド

Hashtableには、便利なメソッドがたくさんあります。いくつかを見ていきましょう:

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

// 鴨を追加
duckInventory.put("Rubber Pirate Duck", 5);

// 海賊鴨の数を取得
int pirateDucks = duckInventory.get("Rubber Pirate Duck");

// 忍者鴨をお持ちであるかどうかを確認
boolean hasNinjaDucks = duckInventory.containsKey("Rubber Ninja Duck");

// すべての鴨を削除(おぉ、ノー!)
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("Duck Census: " + duckCensus);

// タイプ2の鴨をさらに追加
int currentType2Count = duckCensus.get(2);
duckCensus.put(2, currentType2Count + 5);

// 更新された数を確認
System.out.println("Updated Duck Census: " + duckCensus);

// おぉ、タイプ3のすべての鴨が逃げ出した
duckCensus.remove(3);

// 最終的な鴨の数
System.out.println("Final Duck Census: " + duckCensus);
}
}

この例では、Hashtableを使って異なるタイプの鴨を追跡しています。それぞれの鴨のタイプには数字(キー)が振られ、鴨の数(値)を保存します。鴨を追加したり、数字を更新したり、タイプ3の鴨の大規模な逃走を処理したりします!

このコードを実行すると、鴨の人口が時間とともにどのように変化するかを見ることができます。それは、鴨の人口調査官のようなものですが、ずっと楽しく、怒った水鳥に追われることもありません。

それでは、これでJavaのHashtableの世界に踏み込んだことになります。覚えておいてください、練習は成功の一部ですので、自分の鴨…いや、データコレクションで実験することを恐れないでください。幸せなコーディングを!

Credits: Image by storyset