Collections.unmodifiableList и защитная копия

Если я напишу

List<Integer> a1 = Arrays.asList(1, 2, 3);
List<Integer> a2 = Collections.unmodifiableList(a1);

a2 только для чтения, но если я напишу

a1.set(0,10);

тогдаa2 также модифицируется.

Если в API сказано:

Возвращает неизменяемое представление указанной коллекции. Этот метод позволяет модулям предоставлять пользователям доступ «только для чтения» к внутренним коллекциям.

тогда, почему, если я изменяю исходную коллекцию, также изменяется целевая скопированная коллекция?

Может быть, я неправильно понял значение, и если да, то как написать защитную копию этой коллекции?

Ответы на вопрос(8)

Ваш ответ на вопрос