Sobes.tech
Back to questions
Junior — Middle
91

При обращении к элементу по индексу, какая структура данных обеспечивает более быструю операцию: ArrayList или LinkedList?

Companies where asked
Y_lab development
Red Collar

Answer from AI

sobes.tech AI

При обращении к элементу по индексу в Java ArrayList обеспечивает более быструю операцию по сравнению с LinkedList.

Причина в том, что ArrayList основан на массиве, и доступ к элементу по индексу — это операция с временем выполнения O(1), так как можно сразу обратиться к нужной ячейке.

В LinkedList элементы связаны между собой узлами, и чтобы получить элемент по индексу, нужно пройти по списку от начала или конца до нужной позиции, что занимает время O(n).

Пример:

ArrayList<String> arrayList = new ArrayList<>();
LinkedList<String> linkedList = new LinkedList<>();

// Добавим элементы
for (int i = 0; i < 1000; i++) {
    arrayList.add("Element " + i);
    linkedList.add("Element " + i);
}

// Быстрый доступ в ArrayList
String element = arrayList.get(500); // O(1)

// Медленный доступ в LinkedList
String element2 = linkedList.get(500); // O(n)

Поэтому для частого доступа по индексу лучше использовать ArrayList.