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

view raw
gistfile1.txt
hosted with ❤ by GitHub

重複要素がある場合は「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));
}
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

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

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

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA