Por que devo usar o Deque over Stack?

eu preciso deStack estrutura de dados para o meu caso de uso. Eu deveria ser capaz de empurrar itens para a estrutura de dados e eu só quero recuperar o último item da pilha. oJavaDoc for Stack diz:

Um conjunto mais completo e consistente de operações da pilha LIFO é fornecido pela interface Deque e suas implementações, que devem ser usadas em preferência a essa classe. Por exemplo:

Deque<Integer> stack = new ArrayDeque<>();

Eu definitivamente não quero o comportamento sincronizado aqui, pois usarei esta estrutura de dados local para um método. Além disso, por que eu deveria preferirDeque&nbsp;sobreStack&nbsp;Aqui ?

P.S: O javadoc de Deque diz:

Deques também podem ser usados ​​como pilhas LIFO (Last-In-First-Out). Essa interface deve ser usada de preferência para a classe Stack herdada.