Очередь против Dequeue в java

В чем разница между ними? Я знаю, что

Очередь предназначена для размещения элементов в конце очереди и элементов, удаленных с начала очереди. Где Dequeue представляет очередь, где вы можете вставлять и удалять элементы с обоих концов очереди.

Но что более эффективно?

Плюс какая разница между ними? потому что у меня есть немного знаний о них, что я сказал выше, но я хотел бы узнать больше о них. Будет оценено.

Ответ 1

Deque - это сокращение от "двусторонняя очередь". Обычной очередью вы добавляете вещи в один конец, а извлекаете их из другого. Имея двустороннюю очередь, вы можете добавлять вещи с любого конца и брать их с любого конца. Это делает его немного более универсальным; например, вы можете использовать его как стек, если хотите.

С точки зрения эффективности, это действительно зависит от реализации. Но, вообще говоря, вы не ожидаете, что deque превзойдет очередь, потому что (односторонняя) очередь может быть реализована таким образом, чтобы не допустить добавления или удаления объектов на "неправильном" конце. Принимая во внимание, что любая реализация deque также будет работать как реализация очереди.

Ответ 2

Deque и queue - это абстрактные типы данных, которые могут быть реализованы по-разному. Чтобы говорить о производительности, вам нужно указать, какие реализации вы хотите сравнить, и какие операции, которые вас интересуют. Еще лучше, сделайте сам тест с рабочей нагрузкой вашего приложения и в среде, которую вы собираетесь использовать ( аппаратное обеспечение, операционная система, версия JVM).

Так как каждый deque также является очередью, вы можете сказать, что deques может быть не хуже, чем очереди.