Java9のSet.ofメソッドでイミュータブル(不変オブジェクト)なSetオブジェクトを作成する

Java9のSet.ofメソッドでイミュータブル(不変オブジェクト)なSetオブジェクトを作成する

Java9からSetやMapやListなどのコレクションクラスにファクトリメソッドのofメソッドが追加されています。

これで簡単にイミュータブルなオブジェクトが作成できるようになっています。

Setの場合は重複要素がなければOKです。

package jp.co.confrage;

import java.util.Set;

public class Sample {
  public static void main(String[] args) {
    Set<String> set = Set.of("1","2","3"); // 重複要素がなければOK
    set.stream().forEach(e-> System.out.println(e));
  }
}

重複要素がある場合は「IllegalArgumentException」が発生します。

package jp.co.confrage;

import java.util.Set;

public class Sample001 {
  public static void main(String[] args) {
    Set<String> set = Set.of("1","2","2"); // 重複要素があるのでIllegalArgumentExceptionが発生する
    set.stream().forEach(e-> System.out.println(e));
  }
}

Java9からはCollections.unmodifiableSet()メソッドの使用回数が減りそうです。

ちなみにエラーメッセージもどこで要素が重複しているか教えてくれるように変わっているのでその辺も便利になっています。

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

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