第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が発生します。
これで自分の作成したコレクションが、他のところで想定外の使い方をされることがなくなりますね。