28. Расскажите про очередь и стек.

28. Расскажите про очередь и стек.

UNKNOWN

Stack это область хранения данных, находящееся в общей оперативной памяти (RAM).

Всякий раз, когда вызывается метод, в памяти стека создается новый блок-фрейм, который содержит локальные переменные метода и ссылки на другие объекты в методе. Как только метод заканчивает работу, блок также перестает использоваться, тем самым предоставляя доступ для следующего метода.

Размер стековой памяти намного меньше объема памяти в куче.

Стек в Java работает по схеме LIFO
Queue - это очередь, которая обычно (но необязательно) строится по принципу FIFO (First-In-First-Out) - соответственно извлечение элемента осуществляется с начала очереди, вставка элемента - в конец очереди.

Хотя этот принцип нарушает, к примеру PriorityQueue, использующая «natural ordering» или переданный Comparator при вставке нового элемента.

Deque (Double Ended Queue) расширяет Queue и согласно документации это линейная коллекция, поддерживающая вставку/извлечение элементов с обоих концов.

Помимо этого реализации интерфейса Deque могут строится по принципу FIFO, либо LIFO.

Реализации и Deque, и Queue обычно не переопределяют методы equals() и hashCode(), вместо этого используются унаследованные методы класса Object, основанные на сравнении ссылок.


Предыдущий вопрос: 27. Расскажите про линейный и бинарный поиск.

Следующий вопрос: 29. Сравните сложность вставки, удаления, поиска и доступа по индексу в ArrayList и LinkedList.

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку: напишите мне

Report Page