Java中的队列
========
最近在看《java核心技术》,在学习到集合框架的队列一处时,发现书中介绍不太详尽,直接从Deque接口(双端队列)及其实现类开始讲起。结合网络上的博文,在此写下自己的理解以加强记忆并记录下学习所得,如有不正欢迎指出。
1. 关系
在java5中新增加了java.util.Queue接口,定义了队列的一些基本操作,他扩展了Collection接口。java6中定义了Deque(双端队列)接口,扩展了Queue接口定义了双端队列的操作。除此以外还分别有BlockingQueue(阻塞队列)接口,AbstractQueue(非阻塞队列)抽象类。
2. Queue接口
其方法定义如下
boolean add(E element);//添加元素,队满时抛出异常
boolean offer(E element);//添加元素,队满时返回false
E remove(); //删除并返回队头元素,队空时抛出异常
E poll(); //删除并返回队头元素,队空时返回null
E element();//返回队头元素但不删除,队空时抛出异常
E peek();//返回队头元素但不删除,队空时返回null