队列是一种特殊的线性表,它的插入和删除操作是分别在两个不同的端点进行的。它只能在队列的前端进行删除,末端进行插入,所以队列又叫“先进行出”线性表。
在java5中新增加了java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Collection接口。
创建队列
LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。
Queue<TreeNode> queue = new LinkedList<TreeNode>();
这样我们可以使用queue.isEnpty()方法判断队列是否为空。
基本操作
增加一个元素
add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常
offer 添加一个元素并返回true 如果队列已满,则返回false
put 添加一个元素 如果队列满,则阻塞
删除一个元素
remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
poll 移除并返回队列头部的元素 如果队列为空,则返回null
take 移除并返回队列头部的元素 如果队列为空,则阻塞
获取头元素(不删除)
element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
peek 返回队列头部的元素 如果队列为空,则返回null