ホームページ  >  記事  >  バックエンド開発  >  2 つのハッシュ テーブル コレクションをマージする C# プログラム

2 つのハッシュ テーブル コレクションをマージする C# プログラム

WBOY
WBOY転載
2023-09-06 11:21:08709ブラウズ

合并两个哈希表集合的 C# 程序

C# のハッシュ テーブル コレクションには、キーと値のペアが格納されます。コレクション内の各要素または項目はキーと値のペアです。つまり、コレクションは 2 要素のコレクションです。キーは、ハッシュ テーブル内の要素にアクセスするために使用される一意の空ではないキーです。

ハッシュ テーブル コレクションは不変であり、重複した要素を持つことはできません。これは、キーと値の組み合わせが一意である必要があることを意味します。ただし、これらの値は空にすることも、繰り返すこともできます。 .Net Framework には、ハッシュ テーブル コレクションを実装するための HashTable クラスが用意されており、追加のコーディングなしでハッシュ テーブルを実装するために必要な機能が含まれています。

ハッシュ テーブル コレクション内の各要素は、key 要素と value 要素という 2 つのプロパティを持つ DictionaryEntry オブジェクトです。要素がハッシュ テーブルに追加されると、ハッシュ コードが自動的に生成されます。このハッシュ コードは内部にあり、隠されています。ハッシュ テーブル コレクション内の要素は、非表示のハッシュ コードによって順序付けされます。したがって、ハッシュ テーブルの要素はランダムに選択されたものとみなされます。

ハッシュ テーブル コレクションについて簡単に説明した後、2 つのハッシュ テーブル コレクションをマージする方法を見てみましょう。

2 つのハッシュ テーブル コレクションをマージするにはどうすればよいですか?

Hashtable クラスは System によって提供されます。コレクション名前空間には、ハッシュ テーブル オブジェクトを構築し、要素の追加/削除、要素数のカウントなどの操作を実行するために使用できる基本クラス ライブラリのみが含まれています。 2 つのハッシュ テーブルを結合するために使用できるメソッド/関数は提供されていません。

2 つのハッシュ テーブルをマージする独自の方法を設計する必要があります。ハッシュ テーブルの容量またはサイズは、ハッシュ テーブルが保持する要素の数であることがわかっています。要素がハッシュ テーブルに挿入されると、再割り当てを通じてハッシュ テーブルのサイズが自動的に増加します。

したがって、2 つのハッシュ テーブルをマージするときは、一方のハッシュ テーブルの要素をもう一方のハッシュ テーブルに追加します。要素を追加すると、このハッシュ テーブルのサイズがそれに応じて調整されます。

###方法###

    2 つのハッシュ テーブル オブジェクトを作成します。
  • Add メソッドを使用して、両方のテーブルに要素を設定します。
  • キーを使用して 2 番目のハッシュ テーブルをトラバースします。現在のアイテム (トラバースされるキー) が最初のハッシュ テーブルにまだ存在しない場合は、そのキーと値のペアをそれぞれハッシュの最初のハッシュ テーブルに追加します。テーブル。
  • 李>生成されたハッシュ テーブルを出力します。
  • 注: ハッシュ テーブルでは重複キーの追加が許可されていないため、キーを追加する前に、キーがハッシュ テーブルに存在するかどうかを明示的にチェックします。 ######例###
上記のメソッドを次のように C# プログラムに変換します。

リーリー

ここには、indianNumberSystem と langCodes という 2 つのハッシュ テーブルがあります。

ハッシュ テーブル indianNumberSystem には次のデータがあります。

1 ######"1つ"###### 1001000#C

10
######"十"######

「百」

######"千"######

ハッシュ テーブル langCodes には次のデータがあります。

C

「シープラスプラス」

# ######"Cシャープ"######

Java「Java」PL「パール」最初に、これら 2 つのテーブルの内容を表示します。次に、langCodes ハッシュ テーブルのキーを使用してそれを反復処理します。トラバーサル ループでは、まずハッシュ テーブル indianNumberSystem に同じキーがあるかどうかを確認します。キーが存在しない場合は、現在のキーが指す langCodes 要素を indianNumberSystem ハッシュ テーブルに追加します。 最後に、結合されたテーブルを表示します。 リーリー このプログラムは、langCodes ハッシュ テーブルを NumberNames ハッシュ テーブルに置き換えることを除いて、前のプログラムと同じです。 NumberNames ハッシュ テーブルには次の要素があります。

出力

リーリー

生成された出力から、両方のテーブルが正しくマージされていることがわかります。 ######例###

次に、別の例、以下に示す C# プログラムについて考えてみましょう。

1

######"1つ"######
2

######"二"######

3

######"三つ######

4

######"四"###### リーリー
出力

ご覧のとおり、ハッシュ テーブル indianNumberSystem と NumberNames には共通のデータがあります。次に、このプログラムを実行して、マージがどのように行われるかを確認してみましょう。
上記の出力からわかるように、NumberNames のデータ要素 (key=1) は indianNumberSystem ハッシュ テーブルに追加されません。重複が認められていないためです。

###結論は###

したがって、1 つのハッシュ テーブルのデータを別のハッシュ テーブル コレクションにコピーまたは追加することで、2 つのハッシュ テーブル コレクションをマージできます。両方のハッシュ テーブルに共通のキーが存在する場合、重複キーは追加されません。ただし、プログラマーは、ハッシュ テーブルにデータを追加するときに、誤ってデータを追加して予期しない結果が生じることを避けるために必ず確認する必要があります。

以上が2 つのハッシュ テーブル コレクションをマージする C# プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。