はじめに
HashSetはJavaのコレクションの一種で、重複のない要素の集まりを表現します。
配列に似ていますが、順番を持たないため一意の値を入れることしかできません。
たとえば、果物の種類を格納する場合は、重複する要素は自動的に取り除かれることが大きな特徴です。
HashSetの基本的な使い方
HashSetを使用するために必要なimport文を追加し、インスタンスを生成します
import java.util.HashSet;
import java.util.Set;
class Sample {
public static void main(String[] args) {
//String型の要素を格納するHashSetのインスタンスを作成する場合
//Set<型> 変数名 = new HashSet<型>();
Set<String> set = new HashSet<String>();
}
}
要素を追加する
Set<String> set = new HashSet<String>();
set.add("apple");
set.add("banana");
set.add("orange");
//例外は発生しないが、すでに値が保存されているため追加で保存されない
set.add("banana");
ashSetは重複する要素を自動的に削除します。つまり、同じ要素を複数回追加しても最終的には1つの要素しか残りません。
要素の存在を確認する
// 指定値が存在すればtrueを返却する
// 指定値が存在しない場合falseを返却する
if (set.contains("apple")) {
System.out.println("HashSetにはappleが含まれています。");
}
コレクションの中身を一括で複数確認する
Set<Integer> set = new HashSet<Integer>();
set.add(1); // [1]
set.add(2); // [1, 2]
set.add(3); // [1, 2, 3]
set.add(4); // [1, 2, 3, 4]
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
// [1, 2]の全てが含まれています
set.containsAll(list); // true
// listに要素を追加
list.add(150);
// [1, 2, 150]の内、100が含まれていません
set.containsAll(list); // false
要素を削除する
set.remove("banana");
配列に変換する
Set<Integer> set = new HashSet<Integer>();
set.add(1); // [1]
set.add(2); // [1, 2]
set.add(3); // [1, 2, 3]
// 配列に変換して返却します
// set.sizeはHashSetに保存した要素の数を返します。
Integer[] array = set.toArray(new Integer[set.size()]); // {1, 2, 3}
要素を保持しているか確認する
Set<Integer> set = new HashSet<Integer>();
//要素を保持しない場合はtrue
set.isEmpty(); // true
//保持している場合はfalse
set.add(100);
set.isEmpty(); // false
拡張for文による繰り返し
Set<String> set = new HashSet<String>();
set.add("apple");
set.add("bananas");
set.add("grapes");
// { }内の処理に入る度にvalueに要素が代入されます
// HashSetは順番を持たないため、実行するたびに順番は前後する場合があります
for (String value : set) {
System.out.print(value + " ");
}
// 出力結果 bananas grapes apple
forEach文による繰り返し
Set<String> set = new HashSet<String>();
set.add("apple");
set.add("bananas");
set.add("grapes");
// valueに要素が入る
set.forEach(value -> {
System.out.println(value);
});
// 出力結果
// apple
// bananas
// grapes
まとめ
HashSetは重複要素のない集合を扱うためのコレクションです。
重複要素を自動的に削除するため、必ず一意の要素のみを格納することができます。
また、高速なデータ操作が可能ですが、要素の順序は保証されません。
詳細な使い方や応用的な使用例については、記事を通じて詳しく解説しています。お役に立てれば幸いです。