株式会社イーヴ

EeBlog(テクニカルブログ)

TOP > EeBlog > 第36回 コレクションの変更不可ラッパー

第36回 コレクションの変更不可ラッパー

今回のテーマは「コレクションの変更不可ラッパー」です。

コレクションの変更不可ラッパーとは、読んで字の如く、コレクションを変更不可にするためのラッパーです。 例えば、都道府県のリストに対して、独自の県を追加されたり削除されたりしたら困りますよね。 コレクションを変更不可にすることで、コレクションに対する予期せぬ操作を防ぐことができるのです。

コレクションを変更不可にするためには、java.util.CollectionsクラスのunmodifiableCollectionメソッドなどを使います。

import java.util.Collections; 
import java.util.HashSet; 
import java.util.Set;

public class Main { 
    public static void main(String[] args) { 
        Set<String> sampleSet = new HashSet<String>(); 
        sampleSet.add("a"); 
        sampleSet.add("b"); 
        sampleSet.add("c");

        Set<String> unmodifiableSet = Collections.unmodifiableSet(sampleSet); 
        unmodifiableSet.add("d"); 
    } 
}

要素を追加しようとすると、java.lang.UnsupportedOperationExceptionが発生します。
これで自分の作成したコレクションが、他のところで想定外の使い方をされることがなくなりますね。