【Java】Setについて(定義・宣言方法・初期化・操作について)

Java

はじめに

今回は、javaの「Set」の使い方について、勉強したことを記載していきたいと思います。

 

Setとは

Setとは、重複のないデータの集まりを扱うために用意されたクラスになります。Set要素は全て一意の値となるため重複する要素は無視されます。
実装するクラスには次が用意されています。

メソッド名 詳細
HashSet 要素に順序がなく、追加された順序とは無関係に要素を格納します。
LinkedHashSet 要素に順序を持ったクラスで、追加された順序で要素を格納します。
TreeSet ツリー構造を持ったクラスです。自然順序で要素が格納されます。

 

    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        Set<String> hashSet = new HashSet<>();
        hashSet.add("a");
        hashSet.add("c");
        hashSet.add("e");
        hashSet.add("b");
        hashSet.add("d");
        hashSet.add("a"); //重複は無視
        // 順序なし
        System.out.println(hashSet); 

        Set<String> linkedHashSet = new LinkedHashSet<>();
        linkedHashSet.add("1");
        linkedHashSet.add("3");
        linkedHashSet.add("5");
        linkedHashSet.add("2");
        linkedHashSet.add("4");
        // 格納順 1,3,5,2,4
        System.out.println(hashSet); 

        Set<String> treeSet = new TreeSet<>();
        treeSet.add("1");
        treeSet.add("3");
        treeSet.add("5");
        treeSet.add("2");
        treeSet.add("4");
        // 格納順 1,2,3,4,5
        System.out.println(hashSet); 
    }

 

Setに要素を追加・削除

操作 メソッド名 詳細
追加 add(値) リストに値を追加する
削除 remove(index) 指定したindexを削除する

 

    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        Set<String> hashSet = new HashSet<>();
        // 追加
        hashSet.add("a");
        hashSet.add("c");
        hashSet.add("e");
        hashSet.add("b");
        hashSet.add("d");
        hashSet.add("a"); // 重複は上書き
        System.out.println(hashSet); 

        // 削除
        hashSet.remove("a");
        System.out.println(hashSet); 
    }

 

Setの繰り返し処理

foreach文やforeachメソッドを使用することで繰り返し処理を実施することができます。

    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        Set<String> hashSet = new HashSet<>();
        // 追加
        hashSet.add("a");
        hashSet.add("c");
        hashSet.add("e");
        hashSet.add("b");
        hashSet.add("d");

        for (String value : hashSet) {
            System.out.println(value); 
        }

        hashSet.forEach(x -> System.out.println(x));
    }

 

その他のメソッド

メソッド名 詳細
clear Setの全ての要素を削除する
contains 指定した要素がSetに含まれているか判定
size Setの要素数
isEmpty Setに要素がない場合、True

 

ドキュメント

【公式ドキュメント】
Java SE Specifications (oracle.com)

 

最後に

Javaの環境構築は、この記事を参照してみてください。
【開発環境構築】VS CodeでJavaを使用するための環境構築を実施する – SEもりのLog (selifemorizo.com)

以上、ログになります。
これからも継続していきましょう!!

Javaサーバーサイド関連
おすすめIT本
良いコード/悪いコードで学ぶ設計入門

「ITエンジニア本大賞2023」技術書部門で大賞を受賞した本です。
・コードの可読性
・普段意識したほうが良いこと
・リファクタリング考え方
等、普段のコードを設計する際に意識することが書かれています。
コードのあるべき姿に迷ったら一度読んでみると良い本です。

仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

Dockerって何?となったときに私が最初に読んだ本です。
Dockerがどんな仕組みで動いているのか、コマンドでは何を命令しているのかを理解できるように、イラストを多用して説明しています。

1冊ですべて身につくJavaScript入門講座

「ITエンジニア本大賞2024」技術書部門で大賞を受賞した本です。
私が次に読もうと思っている本なのでおすすめとして挙げておきたいと思います。

コメント

タイトルとURLをコピーしました