Ответ
В Kotlin MutableList и ImmutableList (обычно List) — это интерфейсы. Под капотом:
-
List(Immutable)
Чаще всего реализуется черезjava.util.Collections$UnmodifiableRandomAccessListили аналогичные обертки, которые запрещают модификацию. -
MutableList
Обычно используетсяjava.util.ArrayList— динамический массив с автоматическим увеличением capacity при добавлении элементов.
Пример:
val immutable: List<Int> = listOf(1, 2, 3) // Unmodifiable обертка
val mutable: MutableList<Int> = mutableListOf(1, 2, 3) // ArrayList внутри
Нюанс: listOf() возвращает разные реализации в зависимости от размера (например, пустой список — EmptyList).