¿Por qué mi `inmodifiableList` es modificable? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué podemos cambiar la lista no modificable si tenemos la lista original? 7 respuestas

quiero unList cuyos elementos no se pueden eliminar ni agregar. Pensé que había encontrado la respuesta conCollections.unmodifiableList en Java 8. Paso mi lista original y recupero una lista supuestamente inmodificable.

Sin embargo, cuando elimino un elemento de la lista original, mi lista no modificable se modifica. Que esta pasando?

Ver este código de demostración. Mi lista no modificable se reduce a partir de 3 elementos 2 cuando borro del original.

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]

Respuestas a la pregunta(1)

Su respuesta a la pregunta