赞
踩
Queue以及Deque都是继承于Collection,Deque是Queue的子接口。 Queue是FIFO的单向队列,Deque是双向队列。 Queue有一个直接子类PriorityQueue,而Deque中直接子类有两个:LinkedList以及ArrayDeque。
Queue是先进先出(FIFO)的单向队列,只允许在表的前端进行删除操作,在表的后端进行插入操作。
LinkedList类实现了Queue接口,因此可以把LinkedList当成Queue来用。
Queue实现通常不允许插入null元素,尽管某些实现(比如LinkedList)并不禁止插入null,但即使在允许插入null的实现中也不应该这样做,因为null也作为poll()等方法的一个特殊返回值。
方法 | 方法说明 |
---|---|
add(), offer() | 在尾部添加元素,add()在添加失败(比如队列已满)时会报运行时错误,而offer()在添加失败时会返回false。 |
remove(), poll() | 删除元素并返回头部,当队列为空时remove()会报错NoSuchElementException,而poll()会返回null。 |
element(), peek() | 获取头部元素但不删除,当队列为空时element()会抛出异常,而peek()会返回null。 |
在头部操作 | 在尾部操作 | |||
---|---|---|---|---|
操作失败时抛出异常 | 操作失败时返回null | 操作失败时抛出异常 | 操作失败时返回null | |
插入元素 | addFirst() | offerFirst() | addLast() | offerLast() |
删除元素 | removeFirst() | pollFirst() | removeLast() | pollLast() |
获取元素但不删除 | getFirst() | peekFirst() | getLast() | peekLast() |
操作 | 栈方法 | 等效的Deque方法 |
---|---|---|
插入元素 | push() | addFirst() |
删除元素 | pop() | removeFirst() |
获取栈顶元素但不删除 | peek() | peekFirst() |
操作 | Queue方法 | 等效的Deque方法 |
---|---|---|
插入元素 | add() | addLast() |
插入元素 | offer() | offerLast() |
删除元素 | remove() | removeFirst() |
删除元素 | poll() | pollFirst() |
获取元素但不删除 | element() | getFirst() |
获取元素但不删除 | peek() | peekFirst() |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。