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

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

Ответ

Поиск элемента в TreeMap имеет временную сложность O(log n), где n — количество элементов в коллекции.

TreeMap реализован на основе красно-черного дерева (сбалансированное бинарное дерево поиска), что гарантирует логарифмическое время операций get(), put() и remove().

Пример:

val treeMap = TreeMap<String, Int>()
treeMap["A"] = 1
treeMap["B"] = 2
val value = treeMap["A"] // O(log n)

Нюансы:

  • Худший случай (редкий) — O(n) при перебалансировке дерева.
  • Вставка и удаление также O(log n).
  • Для частых поисков в больших коллекциях TreeMap эффективнее HashMap (O(1) в среднем), если нужен порядок элементов.