目录
插入 addFirst,addLast,offerFirst,offerLast
删除 removeFirst,removeLast,pollFirst,pollLast
返回 getFirst,getLast,peekFirst,peekLast
删除内部元素 removeFirstOccurrence,removeLastOccurrence
迭代器 iterator,descendingIterator
简介
/**
* 一个线性的集合,支持在两端插入和删除元素。
* deque是double ended queue 双端队列的简称,通常读作deck。
* 绝大多数Deque实现对可以包含的元素的数量没有固定的限制,
* 但这个接口支持容量限制的双端队列,也支持没有固定大小的。
*
* <p>这个接口定义了访问双端队列的两端末尾的元素。
* 提供了插入,删除,返回这个元素的方法。
* 它们的每个方法存在两个形式:如果操作失败,抛出异常。另个一个返回特殊值(null或者false,取决于操作)。
* 后一种形式的插入操作专门用于容量受限的Queue实现。
* 在大多数实现,insert操作不会失败。
*
* <p>上面的12个方法,在下表总结:
*
* <table BORDER CELLPADDING=3 CELLSPACING=1>
* <caption>Deque 方法总结</caption>
* <tr>
* <td></td>
* <td ALIGN=CENTER COLSPAN = 2> <b>第一个元素(头)</b></td>
* <td ALIGN=CENTER COLSPAN = 2> <b>最后一个元素(尾)</b></td>
* </tr>
* <tr>
* <td></td>
* <td ALIGN=CENTER><em>抛出异常</em></td>
* <td ALIGN=CENTER><em>特殊值</em></td>
* <td ALIGN=CENTER><em>抛出异常</em></td>
* <td ALIGN=CENTER><em>特殊值</em></td>
* </tr>
* <tr>
* <td><b>插入</b></td>
* <td>{@link Deque#addFirst addFirst(e)}</td>
* <td>{@link Deque#offerFirst offerFirst(e)}</td>
* <td>{@link Deque#addLast addLast(e)}</td>
* <td>{@link Deque#offerLast offerLast(e)}</td>
* </tr>
* <tr>
* <td><b>删除</b></td>
* <td>{@link Deque#removeFirst removeFirst()}</td>
* <td>{@link Deque#pollFirst pollFirst()}</td>
* <td>{@link Deque#removeLast removeLast()}</td>
* <td>{@link Deque#pollLast pollLast()}</td>
* </tr>
* <tr>
* <td><b>返回</b></td>
* <td>{@link Deque#getFirst getFirst()}</td>
* <td>{@link Deque#peekFirst peekFirst()}</td>
* <td>{@link Deque#getLast getLast()}</td>
* <td&g