Queue的poll()和remove()、peek()和element()、offer()和add()
poll()和remove() 取出队列头
public E remove() {
return removeFirst();
}
public E removeFirst() {
final Node<E> f = first;
if (f == null)
//没有元素、则抛出异常
throw new NoSuchElementException();
return unlinkFirst(f);
}
public E poll() {
final Node<E> f = first;
//没有元素就返回null
return (f == null) ? null : unlinkFirst(f);
}
peek()和element() 返回队列头元素
在队列为空时, element() 抛出一个异常,而 peek() 返回 null
offer()和add() 添加元素
add():
boolean add(E e)将指定的元素插入到此队列中,如果可以立即执行此操作而不违反容量限制, true在成功后返回 IllegalStateException如果当前没有可用空间,则抛出IllegalStateException。
异常
- IllegalStateException - 如果由于容量限制,此时无法添加该元素
- ClassCastException - 如果指定元素的类阻止将其添加到此队列中
- NullPointerException - 如果指定的元素为空,并且该队列不允许空元素
- IllegalArgumentException - 如果此元素的某些属性阻止将其添加到此队列
offer
boolean offer(E e)如果在不违反容量限制的情况下立即执行,则将指定的元素插入到此队列中。 当使用容量限制队列时,此方法通常优于add(E) ,这可能无法仅通过抛出异常来插入元素。
结果 :
true如果元素被添加到这个队列,否则 false
异常 :
- ClassCastException - 如果指定元素的类阻止将其添加到此队列中
- NullPointerException - 如果指定的元素为空,并且该队列不允许空元素
- IllegalArgumentException - 如果此元素的某些属性阻止将其添加到此队列