AbstractQueue源码分析
java.util.AbstractQueue 类继承自 java.util.AbstractCollection 抽象类,实现了 java.util.Queue 接口。

一、AbstractQueue特点或规范
AbstractQueue 类提供 队列Queue 操作的基础实现。此类不允许 null 元素。
如果操作没有找到元素,则会抛出异常,而不会返回 false 或 null。
add(E)依赖offer(E)remove()依赖poll()element()依赖peek()
继承此类的 队列Queue 实现必须实现的方法:
Queue.offer(E)方法,且不允许插入null元素Queue.peek()Queue.poll()Collection.size()Collection.iterator()
如果无法满足特定要求,可继承 AbstractCollection。
二、构造器
唯一构造器,由子类实现提供 Collection 规范中的两个构造器。
1 | |
三、方法分析
3.1 继承自 AbstractCollection 的方法
add(E) 方法
将指定的元素插入此队列,如果插入成功,则返回 true,否则抛出 IllegalStateException 异常。
1 | |
addAll(Collection) 方法
将指定集合中的所有元素添加到当前队列中。此实现迭代指定的集合,并依次将迭代器返回的每个元素添加到当前队列中。
1 | |
clear() 方法
删除队列中的所有元素。重复调用 poll() 方法直到返回 null。
1 | |
3.2 继承自 AbstractQueue 的方法
element() 方法
删除并返回此队列的头元素。此方法与 peek() 的不同之处仅在于,如果此队列为空,则抛出异常。
1 | |
remove() 方法
删除并返回此队列的头元素。此方法与 poll() 的不同之处仅在于,如果此队列为空,则抛出异常。
1 | |
AbstractQueue源码分析
https://cuilan.github.io/2019/08/21/java/util/AbstractQueue-source-analysis/