queue队列

ok 因为在题目里面遇到了Queue,所以我就来了解一下Queue这个接口的功效吧!

来看看里面的注释是怎么说这个类的,英语四级启动!:

它说这是一个围在处理钱保存元素和设计的集合。基于util类库的操作,队列支持 额外的 插入、 提取 检查 操作。

每一个方法都存在两个形式:

1)在操作失败时抛出一个异常。

2)返回一个特殊值 null 或 false (取决于你的操作)。

第二种形式 在 插入操作中被特别设计成容量受限的情况。在大多数的情况下,插入操作不能出错。

来看看Queue接口的源码

1
2
public interface <E> extends Collection<E> {
}

Queue从jdk1.5出现 继承Collection这个接口,方法一共有六个:

add方法

1
boolean add(E e);

将指定的元素插入此队列,成功则返回true,如果没有足够的空间 则抛出一个异常。

可能的异常有4个IllegalStateException、ClassCastException、NullPointerException、IllegalArgumentException

offer方法

1
boolean offer(E e);

这个方法和add方法一样时将元素插入队列中的,不同之处在于,当队列因为没有足够空间插入元素时,这个元素会返回false而不是抛出IllegalStateException异常。

可能的异常有3个ClassCastException、NullPointerException、IllegalArgumentException。

remove方法

1
E remove();

检索并删除此队列的头部元素,这种方法在队列为空时会抛出异常 NoSuchElementException。

poll方法

1
E poll();

这个方法和remove方法一样,不同之处在于在队列为空时 poll是返回一个null而不是抛出异常。

element方法

1
E element();

检索但不删除队列的头部,如果队列为空则会抛出一个异常 NoSuchElementException。

peek方法

1
E peek();

这个方法和element方法一样,不同之处在于如果队列位空,返回的是null而不是抛出异常。