Что такое стек

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

Ответ

Стек — это структура данных, работающая по принципу LIFO (Last In, First Out). Последний добавленный элемент первым будет извлечён. В Android стеки часто используются для управления фрагментами (FragmentManager) или навигации (NavController).

Пример:

val stack = Stack<Int>()
stack.push(1) // [1]
stack.push(2) // [1, 2]
val top = stack.pop() // 2, осталось [1]

Нюансы:

  • В Android FragmentManager использует back stack для управления фрагментами.
  • Переполнение стека может привести к StackOverflowError.
  • Для многопоточности лучше использовать ConcurrentLinkedDeque.