C# ハッシュテーブルと例
C# の Hashtable とは?
ハッシュ テーブルは、キーと値の項目を格納するために使用される特別なコレクションです。そのため、スタック、配列リスト、キューのように値を 1 つだけ格納する代わりに、ハッシュ テーブルには 2 つの値を格納します。これら 2 つの値は、ハッシュ テーブルの要素を形成します。
以下は、ハッシュ テーブルの値がどのように見えるかの例です。
{ "001" , ".Net" } { "002" , ".C#" } { "003" , "ASP.Net" }
上記には、3 つのキーと値のペアがあります。各要素のキーは、それぞれ 001、002、003 です。各キーと値のペアの値は、それぞれ「.Net」、「C#」、「ASP.Net」です。
Hashtable コレクションで使用できる操作を詳しく見てみましょう。
ハッシュテーブルの宣言
Hashtable の宣言を以下に示します。ハッシュテーブルは、ハッシュテーブル データ型を使用して作成されます。 「new」キーワードは、Hashtable のオブジェクトを作成するために使用されます。オブジェクトは変数 ht に割り当てられます。
Hashtable ht = new Hashtable()
ハッシュテーブルへの要素の追加
Add メソッドは、要素をキューに追加するために使用されます。ステートメントの一般的な構文を以下に示します
HashTable.add("key","value")
例 1:
ハッシュ テーブルの各要素は 2 つの値で構成されることに注意してください。1 つはキーで、もう 1 つは値です。
それでは、これがコードレベルで機能することを見てみましょう。以下のコードはすべて、コンソール アプリケーションに書き込まれます。
コードは Program.cs ファイルに書き込まれます。以下のプログラムでは、上記のメソッドをどのように使用できるかを確認するためのコードを記述します。
今のところ、この例では、ハッシュテーブルを作成し、要素をハッシュテーブルに追加して、それに応じて表示する方法だけを見ていきます。
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Hashtable ht = new Hashtable(); ht.Add("001",".Net"); ht.Add("002","C#"); ht.Add("003","ASP.Net"); ICollection keys = ht.Keys; foreach (String k in keys) { Console.WriteLine(ht[k]); } Console.ReadKey(); } } }
コードの説明:-
<オール> <リ>まず、キーワード「New」を使用して、Hashtable データ型を使用してハッシュテーブル変数を宣言します。定義する変数の名前は「ht」です。
<リ>次に、Add メソッドを使用して要素をハッシュ テーブルに追加します。ハッシュテーブルに何かを追加するときは、キー要素と値要素の両方を追加する必要があることに注意してください。
<リ>ハッシュ テーブルの要素を直接表示する方法はありません。
- ハッシュ テーブルを表示するには、まずハッシュ テーブルからキー (001、002、003) のリストを取得する必要があります。
- これは、ICollection インターフェイスを介して行われます。これは、ハッシュテーブル コレクションのキーを格納するために使用できる特別なデータ型です。次に、ハッシュテーブル コレクションのキーを変数「keys」に割り当てます。
- <リ>
次に、各キー値について、ステートメント ht[k] を使用して、ハッシュ テーブル内の関連付けられた値を取得します。
上記のコードが正しく入力され、プログラムが実行されると、次の出力が表示されます。
出力:
ハッシュ テーブルで使用できるメソッドをいくつか見てみましょう。
ContainsKey
このメソッドは、ハッシュテーブルにキーが存在するかどうかを確認するために使用されます。以下は、このステートメントの一般的な構文です。このステートメントは、キーが存在する場合は true を返し、存在しない場合は値 false を返します。
Hashtable.Containskey(key)
ContainsValue
このメソッドは、Value が Hashtable に存在するかどうかを確認するために使用されます。以下は、このステートメントの一般的な構文です。このステートメントは、値が存在する場合は true を返し、存在しない場合は値 false を返します。
Hashtable.ContainsValue(value)
例 2:
コンソール アプリケーションのコードを変更して、「Containskey」および「ContainsValue」メソッドの使用方法を紹介しましょう。
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Hashtable ht = new Hashtable(); ht.Add("001",".Net"); ht.Add("002","C#"); ht.Add("003","ASP.Net"); Console.WriteLine(ht.ContainsKey("001")); Console.WriteLine(ht.ContainsValue("C#")); Console.ReadKey(); } } }
コードの説明:-
<オール>上記のコードが正しく入力され、プログラムが実行されると、次の出力が表示されます。
出力:
出力から、検索対象のキーと値の両方がハッシュ テーブルに存在することが明確にわかります。
まとめ
ハッシュテーブルは、キーと値のペアで構成される要素を格納するために使用されます。要素の値にアクセスするには、要素のキーを知る必要があります。
C言語