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),但是最好也要避免。