public abstract class AbstractQueue<E>
extends AbstractCollection<E>
implements Queue<E> {
// 可被子类/ 同包/ 内部 使用的构造函数
protected AbstractQueue() {
}
// 队列中增加一个元素
public boolean add(E e) {
if (offer(e))
return true;
else
throw new IllegalStateException("Queue full");
}
// 队列中删除一个 队头元素
public E remove() {
E x = poll();
if (x != null)
return x;
else
throw new NoSuchElementException();
}
// 获取队头节点 但是不移除
public E element() {
E x = peek();
if (x != null)
return x;
else
throw new NoSuchElementException();
}
// 清空队列
public void clear() {
while (poll() != null)
;
}
// 批量增加指定集合中的元素 如其中一个增加成功 设置为成功
public boolean addAll(Collection<? extends E> c) {
if (c == null)
throw new NullPointerException();
if (c == this)
throw new IllegalArgumentException();
boolean modified = false;
for (E e : c)
if (add(e))
modified = true;
return modified;
}
}