Javaのセット(Set)について


JavaのセットSetは「数学の集合」の概念を表しています。重複のない要素の集まりです。リストが順序で並んだ集まりで重複した要素を持てますが、セットの場合は順序は無関係で要素に重複はありません。

🐞 Setの具象クラス

Setインターフェイスを実装した具象クラス「HashSet、LinkedHashSet、TreeSet」でMapと内部実装は同じで、使い分けの基準も同じことがいえます。

  • 順序が不要な場合はHashSet
  • 追加した順序が欲しい場合はLinkedHashSet
  • ソートされた順序が欲しい場合はTreeSet

🤔 代表的なメソッド

Setインターフェイスの代表的なメソッドを紹介します。

メソッド名 説明
add 要素の追加
addAll 要素をまとめて追加
contains 要素の存在チェック
remove 要素の削除
size 要素数の取得

😼 サンプルコード

Setインターフェイスの利用例のサンプルコードを紹介します。

public class SetSample {
public static void main(String... args) {
Set<String> set = new HashSet<>();
boolean b1 = set.add("abc"); // b1は true
boolean b2 = set.add("def"); // b2は true
boolean b3 = set.add("abc"); // b3は false
for (String e: set) { //すべての要素を出力
System.out.println(e); // => abc, def
}
}
}

🐰 参考リンク

改訂2版 パーフェクトJava

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)