Queue:
队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。
LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。
1 | arduino复制代码import java.util.LinkedList; |
Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。BlockingQueue 继承了Queue接口。
下表显示了jdk1.5中的阻塞队列的操作:
add
增加一个元索
如果队列已满,则抛出一个IIIegaISlabEepeplian异常
remove
移除并返回队列头部的元素
如果队列为空,则抛出一个NoSuchElementException异常
element
返回队列头部的元素
如果队列为空,则抛出一个NoSuchElementException异常
offer
添加一个元素并返回true
如果队列已满,则返回false
poll
移除并返问队列头部的元素
如果队列为空,则返回null
peek
返回队列头部的元素
如果队列为空,则返回null
put
添加一个元素
如果队列满,则阻塞
take
移除并返回队列头部的元素
如果队列为空,则阻塞
Deque:
deque(也称为双端队列)是与队列类似的项的有序集合。它有两个端部,首部和尾部,并且项在集合中保持不变。deque 不同的地方是添加和删除项是非限制性的。可以在前面或后面添加新项。同样,可以从任一端移除现有项。如下展示了一个 Python 数据对象的 deque 。
1 | scss复制代码from python_basic_deque.deque_definition import Deque |
本文转载自: 掘金