1 队列(Queue)代表一种数据结构:先插入的元素先被处理,即所谓的“先进先出”。
2 Queue 继承了 Collection 接口,除了集合的方法以外,队列特有三种操作:插入/获取/检查。这三种方法都有两种形式:如果操作失败的话返回特定值或者抛出异常。
| 抛出异常 | 返回特殊值 |
insert | add(e) | offer(e) |
remove | remove() | poll() |
examine | element() | peek() |
插入元素:
add:如果失败抛出异常
offer:插入成功则返回true,失败则返回false。这里的失败不是异常,比如插入一个已经满的队列则会失败。
获取/删除元素:
remove: 删除并返回队列的头部元素,如果操作失败则抛出异常
poll:删除并返回队列的头部元素,如果操作失败则返回 null。
检查操作:
element/peek:返回头部元素,但是不会删除头部元素。
null 元素:Queue一般是不允许有null元素,因为poll 根据返回值判断队列是否是空。但是有的QUueue类是可以插入null的(比如LinkedList),但是最好也要避免。