队列(
Queue
)是一种经常使用的集合。Queue
实际上是实现了一个先进先出(FIFO:First In First Out)的有序表
Queue
接口常用的实现类是 LinkedList
在Java的标准库中,队列接口 Queue
定义了以下几个方法:
int size()
:获取队列长度;boolean add(E)
/boolean offer(E)
:添加元素到队尾;E remove()
/E poll()
:获取队首元素并从队列中删除;E element()
/E peek()
:获取队首元素但并不从队列中删除。
add/offer、remove/poll、element/peek的区别:
在添加或获取元素失败时,这两个方法的行为是不同的
throw Exception 返回false或null 添加元素到队尾 add(E e) boolean offer(E e) 取队首元素并删除 E remove() E poll() 取队首元素但不删除 E element() E peek()
注意:不要把 null
添加到队列中,否则 poll()
方法返回 null
时,很难确定是取到了 null
元素还是队列为空
LinkedList
即实现了 List
接口,又实现了 Queue
接口,但是,在使用的时候,如果我们把它当作List,就获取List的引用,如果我们把它当作Queue,就获取Queue的引用