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