Да, это старая тема, но у меня все еще есть некоторые недоразумения.
В Java люди говорят:
ArrayList работает быстрее, чем LinkedList, если я обращаюсь к его элементам случайным образом. Я думаю, что произвольный доступ означает «дайте мне n-й элемент». Почему ArrayList быстрее?
Удаление LinkedList выполняется быстрее, чем ArrayList. Я понимаю это. ArrayList медленнее, так как внутренний резервный массив необходимо перераспределить. Объяснение кода:
List list = new ArrayList();
список.добавить("а");
список.добавить("б");
список.добавить("с");
список.удалить("б");
System.out.println(list.get(1)); // вывод "с"
LinkedList быстрее, чем ArrayList для вставки. Что здесь означает вставка? Если это означает переместить некоторые элементы назад, а затем поместить элемент в среднее пустое место, ArrayList должен быть медленнее, чем LinkedList. Если вставка означает только операцию добавления (объекта), как это может быть медленным?