1. Deque接口表示一个双端队列。Deque接口实现分为通常和并发两类。

通用Deque实现:

通常实现包含LinkedList类和ArrayDeque类。Deque接口支持双端的插入、移动和获取元素。ArratyDeque类是一个调整大小的Deque接口实现,而ListkedList是列表实现。
LinkedList实现比ArrayDeque实现要更加灵活,LinkedList实现了所有可选的列表操作;null元素在LinkedList中被允许,而在ArrayDeque中不被允许。
从效率上讲,ArrayDeque在双端上的添加和移除操作比LinkedList要更加有效。在LinkedList上最好的操作是在迭代中移除当前元素。LinkedList实现不是迭代的理想结构。
LinkedList实现比ArrayDeque实现消耗更多的内存。

并发Deque实现:

LinkedBlocking类是Deque接口的并发实现。如果双端队列是空的话,那么想takeFirst和takeLast这样的方法就会等待,知道有元素可用,然后就有获取并移除该元素。