Пытаетесь понять, в чем смысл делать arrayOf() таким же, как mutableListOf(), но удалять такие функции, как add() и remove()?
Да mutableListOf(), отредактировано
Похоже, что это является дубликатом вашего вопроса. Есть ли что-то конкретное, что вас интересует, что не рассматривается в этом вопросе и его ответах?
Это хорошее объяснение, спасибо. Таким образом, единственная причина использования массивов - это повышение производительности (ускорение поиска объектов в массиве)? Также я не мог найти преимущество использования List над MutableList?
Во многих современных программах мы пытаемся по возможности использовать неизменяемые объекты. Kotlin подчеркивает это (val против var, MutableList против List и т. д.). Неизменяемость имеет много положительных преимуществ (например, два потока могут обращаться к объекту одновременно без конфликтов).
Одна важная вещь в том, как Kotlin реализует метод mutableListOf(), заключается в том, что он создает новый ArrayList. ArrayList просто обертывает обычный Object[], а затем использует метод Arrays.copyOf() для «расширения» размера этого массива, когда это необходимо.
Возможно, вам придется иметь дело с методами, принимающими Array.
Они не одинаковы:
arrayOf() внутри создает Array, а mutableListOf() — ArrayList.
Какой из них вы выберете, зависит от вашего приложения.
Массив — это структура данных фиксированного размера. Чтобы добавить/удалить значения, вам нужно создать копию старого массива с новыми изменениями (что дорого), но независимо от того, какой у вас большой массив, доступ к элементу имеет постоянную временную сложность. Однако вам нужно сделать это вручную.
С другой стороны, ArrayList также использует массив для внутреннего представления, но предоставляет вам изменяемый интерфейс. Таким образом, добавление/удаление элемента по-прежнему приводит к копированию внутреннего массива, но этот процесс абстрагируется от вас.
Вывод:
Array.ArrayList.LinkedList.
Вы имеете в виду
mutableListOf()?