Какая скорость поиска элемента в LinkedList

«Какая скорость поиска элемента в LinkedList» — вопрос из категории Алгоритмы и структуры данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

val list = LinkedList<String>().apply {
    add("A")
    add("B")
    add("C")
}
// Поиск "C" потребует 3 итерации
val index = list.indexOf("C") 

Для частых операций поиска лучше использовать ArrayList (O(1) для доступа по индексу) или HashSet (O(1) для проверки наличия).