C#でHashSetを初期化する方法【重複要素の削除も解説】
C#でHashSetを初期化するには
C#でHashSetを初期化する最も簡単な方法は、コンストラクタの引数に配列などのコレクションを渡すことです。これにより、既存のコレクションからHashSetインスタンスを生成できます。
var h = new HashSet<string>(arr1);
上記のコードでは、配列 arr1 をHashSetに設定しています。使用している配列は以下の通りです。
string[] arr1 = {
"electronics",
"accessories",
"electronics",
};この配列には「electronics」が重複して含まれています。HashSetは同一の要素を許可しないコレクションであるため、初期化の時点で重複した要素は自動的に排除されます。
サンプルコード
以下は、C#でHashSetを初期化し、配列内の重複する単語を削除する実装例です。
using System;
using System.Collections.Generic;
using System.Linq;
class Program {
static void Main() {
string[] arr1 = {
"electronics",
"accessories",
"electronics",
};
Console.WriteLine(string.Join(",", arr1));
// HashSetの初期化
var h = new HashSet<string>(arr1);
// 重複する単語を削除
string[] arr2 = h.ToArray();
Console.WriteLine(string.Join(",", arr2));
}
}実行結果
electronics,accessories,electronics electronics,accessories
元の配列では「electronics」が2回出力されていますが、HashSetを経由することで重複が取り除かれ、一意な値のみが出力されていることが確認できます。
ポイントまとめ
- HashSetは重複する要素を許可しないため、初期化時に自動的に重複が排除されます。
- コンストラクタに
IEnumerable<T>型のコレクション(配列、Listなど)を渡すだけで簡単に初期化できます。 ToArray()メソッドを使用する場合は、System.Linq名前空間の参照が必要です。
-
JavaでのArrayListとHashSetの違いを徹底解説!使い分けのポイントも紹介
HashSetとArrayListは、どちらもJavaコレクションフレームワークにおいて最も重要なクラスの一つです。それぞれ特徴が異なるため、用途に応じた適切な使い分けが求められます。本記事では、ArrayListとHashSetの主な違いを6つの観点から比較し、実際のサンプルコードとともにわかりやすく解説します。ArrayListとHashSetの違い一覧No.項目ArrayListHashSet1実装インターフェースListインターフェースを実装しています。Setインターフェースを実装しています。2内部構造内部的には配列(動的配列)を使って実装されています。内部的にはHashMapを使って
-
組み込みライブラリを使わずにPythonでHashSet(ハッシュセット)を実装する方法
本記事では、Pythonの組み込みハッシュテーブルライブラリを使用せずに、HashSet(ハッシュセット)データ構造をゼロから設計・実装する方法を解説します。実装すべき主な操作は以下の3つです。add(x) ― 値 x をHashSetに挿入しますcontains(x) ― 値 x がHashSetに存在するかどうかを判定しますremove(x) ― 値 x をHashSetから削除します。値が存在しない場合は何もしません動作確認のシナリオまずHashSetを初期化し、その後 add(1) → add(3) → contains(1) → contains(2) → add(2) → cont