Por que minha `unmodifiableList` é modificável? [duplicado]

Esta pergunta já tem uma resposta aqui:

Por que podemos mudar a lista não modificável se temos a lista original? 7 respostas

eu quero umList cujos elementos não podem ser removidos nem adicionados. Eu pensei que tinha encontrado a resposta comCollections.unmodifiableList no Java 8. Passo a minha lista original e volto a uma lista supostamente não modificável.

No entanto, quando eu excluo um elemento da lista original, minha lista não modificável é modificada. O que está acontecendo?

Veja este código de demonstração. Minha lista não modificável diminui de 3 elementos 2 ao excluir do 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]

questionAnswers(1)

yourAnswerToTheQuestion