List
要素を削除または追加できない が必要です。Java 8 のCollections.unmodifiableListで答えを見つけたと思いました。元のリストを渡すと、おそらく変更不可能なリストが返されます。
しかし、元のリストから要素を削除すると、変更不可能なリストが変更されます。何が起こっている?
このデモ コードを参照してください。オリジナルから削除すると、変更不可能なリストが 3 つの要素 2 から縮小されます。
String dog = "dog";
String cat = "cat";
String bird = "bird";
List< String > originalList = new ArrayList<>( 3 );
originalList.add( dog );
originalList.add( cat );
originalList.add( bird );
List< String > unmodList = Collections.unmodifiableList( originalList );
System.out.println( "unmod before: " + unmodList ); // Yields [dog, cat, bird]
originalList.remove( cat ); // Removing element from original list affects the unmodifiable list?
System.out.println( "unmod after: " + unmodList ); // Yields [dog, bird]