Является ли List в Kotlin immutable-коллекцией?



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



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



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