C#のHashtable(ハッシュテーブル)からすべての要素を削除する方法
C#の Hashtable クラスでは、Clear() メソッドを1回呼び出すだけで、格納されているすべてのキーと値のペアを一括して削除できます。この記事では、実際のサンプルコードと実行結果をもとに、Clear() メソッドの使い方をわかりやすく解説します。
Clear() メソッドの基本
Clear() は、Hashtable 内のすべてのエントリ(キーと値のペア)を削除し、要素数(Count プロパティの値)を 0 にするメソッドです。Hashtable 自体は固定サイズではないため、削除後も引き続き新しい要素を追加できます。
サンプルコード①:10個の要素を持つHashtableをクリアする
using System;
using System.Collections;
public class Demo {
public static void Main() {
Hashtable hash = new Hashtable(10);
hash.Add("1", "A");
hash.Add("2", "B");
hash.Add("3", "C");
hash.Add("4", "D");
hash.Add("5", "E");
hash.Add("6", "F");
hash.Add("7", "G");
hash.Add("8", "H");
hash.Add("9", "I");
hash.Add("10", "J");
Console.WriteLine("Hashtable のキーと値の一覧...");
foreach(DictionaryEntry entry in hash) {
Console.WriteLine("{0} : {1}", entry.Key, entry.Value);
}
Console.WriteLine("Hashtable は固定サイズか? = " + hash.IsFixedSize);
Console.WriteLine("Hashtable の要素数 = " + hash.Count);
// すべての要素を削除
hash.Clear();
Console.WriteLine("Hashtable の要素数(削除後) = " + hash.Count);
}
}
実行結果
上記のコードを実行すると、次のような出力が得られます。
Hashtable のキーと値の一覧... 10 : J 1 : A 2 : B 3 : C 4 : D 5 : E 6 : F 7 : G 8 : H 9 : I Hashtable は固定サイズか? = False Hashtable の要素数 = 10 Hashtable の要素数(削除後) = 0
このように、hash.Clear() を呼び出した直後に Count を確認すると、要素数が 10 から 0 になっていることがわかります。また、IsFixedSize が False であることから、Hashtable が可変サイズであることも確認できます。
サンプルコード②:文字列キーを使った場合
続いて、キーに文字列を使用した別の例を見てみましょう。
using System;
using System.Collections;
public class Demo {
public static void Main() {
Hashtable hash = new Hashtable(10);
hash.Add("One", "100");
hash.Add("Two", "200");
hash.Add("Three", "300");
hash.Add("Four", "400");
hash.Add("Five", "500");
Console.WriteLine("Hashtable のキーと値の一覧...");
foreach(DictionaryEntry entry in hash) {
Console.WriteLine("{0} : {1}", entry.Key, entry.Value);
}
Console.WriteLine("Hashtable の要素数 = " + hash.Count);
// すべての要素を削除
hash.Clear();
Console.WriteLine("Hashtable の要素数(削除後) = " + hash.Count);
}
}
実行結果
Hashtable のキーと値の一覧... One : 100 Five : 500 Three : 300 Two : 200 Four : 400 Hashtable の要素数 = 5 Hashtable の要素数(削除後) = 0
出力順序が追加順と異なる点に注目してください。Hashtable は内部的にハッシュ値に基づいて要素を管理しているため、foreach での列挙順序は保証されません。これは正常な動作です。
ポイントまとめ
Clear()メソッドを呼び出すと、Hashtable 内のすべてのキーと値のペアが削除される。- 削除後の
Countは必ず 0 になる。 - Hashtable は固定サイズではないため、
Clear()後も新しい要素を追加できる。 - 列挙時の要素の並び順はハッシュ値に依存するため、追加順とは一致しない。
なお、Hashtable は System.Collections 名前空間に属する非ジェネリックなコレクションです。新規開発では型安全な Dictionary<TKey, TValue> の使用が推奨されますが、どちらにも同名の Clear() メソッドが用意されているため、同じ要領で全要素を削除できます。
-
C#のハッシュテーブル(Hashtable)から要素を削除する方法
C#のHashtableクラスは、キーと値のペアを格納できるコレクションです。この記事では、ハッシュテーブルから特定の要素を削除する方法を、サンプルコードと実行結果付きでわかりやすく解説します。ハッシュテーブルの準備まず、以下のようなハッシュテーブルを用意します。Hashtable h = new Hashtable(); h.Add(1, Jack); h.Add(2, Henry); h.Add(3, Ben); h.Add(4, Chris);Remove()メソッドで要素を削除するハッシュテーブルから要素を削除するには、Remove()メソッドを使用します。引数には、削除したい要素のキ
-
JavaでArrayListのすべての要素を削除する方法(clearメソッドの使い方)
JavaのArrayListからすべての要素を一括で削除したい場合は、clear()メソッドを使用します。この記事では、実際のコード例を通じて、ArrayListの全要素を削除する手順をわかりやすく解説します。1. 要素を持つArrayListを作成するまず、複数の要素を格納したArrayListを用意しましょう。以下の例では、Integer型のArrayListに7つの数値を追加しています。ArrayList<Integer> arrlist = new ArrayList<Integer>(5); arrlist.add(25); arrlist.add(50);