Все зависит от того, какой тип операции вы выполняете во время итерации, все структуры данных имеют компромисс между временем и памятью, и в зависимости от наших потребностей мы должны выбрать правильный DS. Так что в некоторых случаях LinkedList быстрее, чем массив, и наоборот. Рассмотрим три основные операции над структурами данных.
Поскольку массив - это структура данных, основанная на индексе, поиск в array.get (index) займет O (1) времени, в то время как связанный список не является индексным DS, поэтому вам нужно перейти к индексу, где index <= n, n - размер связанного списка, так что массив быстрее связывает список, когда имеет произвольный доступ к элементам.
Q. Так в чем красота этого?
Поскольку массивы являются смежными блоками памяти, их большие куски будут загружаться в кэш при первом доступе, что делает его сравнительно быстрым для доступа к остальным элементам массива, поскольку доступ к элементам в массиве приводит к увеличению локальности ссылок, что приводит к уменьшению улова. В противном случае локальность кэша относится к операциям, находящимся в кэше, и, таким образом, выполняется намного быстрее по сравнению с памятью, в основном в массиве мы максимально увеличиваем шансы последовательного доступа к элементам в кэше. Хотя связанные списки не обязательно находятся в смежных блоках памяти, нет гарантии, что элементы, которые последовательно появляются в списке, фактически располагаются рядом друг с другом в памяти, это означает, что меньше обращений в кэш, например
Это легко и быстро в LinkedList, так как вставка является операцией O (1) в LinkedList (в Java) по сравнению с массивом, рассмотрим случай, когда массив заполнен, нам нужно скопировать содержимое в новый массив, если массив заполнится, что делает вставку элемент в ArrayList из O (n) в худшем случае, в то время как ArrayList также должен обновить свой индекс, если вы вставляете что-либо где-нибудь, кроме конца массива, в случае связанного списка нам не нужно изменять его размер, вам просто нужно обновить указатели.
Он работает как вставки и лучше в LinkedList, чем массив.