Immutable-объект – это объект, состояние которого невозможно изменить после создания.

List в Kotlin не имеет методов для изменения состояния (добавления и удаления элементов), поэтому может показаться что это immutable-коллекция.

На самом деле List – это интерфейс, имеющий read-only доступ. Такой паттерн называется Immutable Interface. За этим интерфейсом может скрываться любая коллекция, например мутабельный ArrayList (пример на картинке).

Ранее мы писали как создать immutable-коллекцию в Java.