Представим, что у нас есть корзинка с котиками. Мы можем положить котика в корзинку с любой стороны: либо слева, либо справа. И мы можем взять котика из корзинки тоже с любой стороны, не трогая других котиков. Deque тут представлен в виде корзинки. Он тоже позволяет удобно добавлять и удалять котиков данные с обеих сторон. Т.е. это такая структура, которая объединяет в себе возможности стека и очереди. В котлин есть несколько реализаций. У каждой свои особенности и преимущества. Чаще всего используются ArrayDeque и LinkedList. ArrayDeque сегодня и рассмотрим. В самом интерфейсе достаточно много методов на любой запрос и вкус. На всякий случай покажу: ArrayDeque ArrayDeque основан на массиве и обеспечивает быстрое добавление и удаление элементов слева и справа. Он идеально подходит для ситуаций, когда заранее известно максимальное количество котиков или когда требуется высокая производительность при частом добавлении/удалении (НЕ в середину). Немного информации из документации: Добавлен