Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

Java辞典

  1. トップページ
  2. Java辞典
  3. new HashSet<>() / セット.add() / contains() / remove()

new HashSet<>() / セット.add() / contains() / remove()

セット(集合)は重複する要素を持たないコレクションです。『HashSet』は最も一般的なセット実装で、要素の順序は保証されません。挿入順を保持したい場合は『LinkedHashSet』、要素を自然順序で保持したい場合は『TreeSet』を使用します。

構文
// HashSet を作成します。
Set<型> セット名 = new HashSet<>();

// 挿入順を保持するセットを作成します。
Set<型> セット名 = new LinkedHashSet<>();

// 昇順で並べるセットを作成します。
Set<型> セット名 = new TreeSet<>();

// 要素を追加します(重複は無視されます)。
セット.add(要素);

// 要素が含まれているか確認します。
セット.contains(要素);

// 要素を削除します。
セット.remove(要素);
メソッド一覧
メソッド・クラス概要
new HashSet<>()ハッシュテーブルに基づくセットを作成します。要素の順序は保証されません。
new LinkedHashSet<>()挿入順序を保持するセットを作成します。
new TreeSet<>()要素を自然順序(昇順)で保持するセットを作成します。
add(E e)指定した要素を追加します。既に存在する場合は追加せず false を返します。
contains(Object o)指定した要素が含まれているか確認し、boolean 型で返します。
remove(Object o)指定した要素を削除します。削除できた場合は true を返します。
サンプルコード
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

// HashSet を作成して要素を追加します。
Set<String> fruits = new HashSet<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
fruits.add("apple"); // 重複は無視されます。
System.out.println(fruits.size()); // 『3』と出力されます。

// 要素の存在確認をします。
System.out.println(fruits.contains("banana")); // 『true』と出力されます。
System.out.println(fruits.contains("grape"));  // 『false』と出力されます。

// 要素を削除します。
fruits.remove("banana");
System.out.println(fruits.contains("banana")); // 『false』と出力されます。

// LinkedHashSet は挿入順を保持します。
Set<String> ordered = new LinkedHashSet<>();
ordered.add("banana");
ordered.add("apple");
ordered.add("cherry");
System.out.println(ordered); // 『[banana, apple, cherry]』と出力されます。

// TreeSet は自然順序(昇順)で保持します。
Set<String> sorted = new TreeSet<>();
sorted.add("banana");
sorted.add("apple");
sorted.add("cherry");
System.out.println(sorted); // 『[apple, banana, cherry]』と出力されます。
概要

『HashSet』は重複する要素を自動的に除外するコレクションです。要素の順序は保証されないため、順序が重要な場合は『LinkedHashSet』または『TreeSet』を使用してください。

『add()』は要素を追加し、重複する要素を追加しようとした場合は false を返します。『contains()』はリストの線形探索(O(n))と異なりハッシュテーブルを使うため、O(1) の高速な検索が可能です。

セットのサイズ取得や反復処理については『size() / isEmpty() / iterator()』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。