Java集合框架(五)Queue接口

2016-05-05  本文已影响140人  清风流苏

Queue(队列)接口继承自Collection,用来表示内部元素具有先后顺序的集合。除了基本的集合操作外,队列还提供了其他插入、删除和检查操作。Queue接口定义如下:

  public interface Queue<E> extends Collection<E> {
        E element();
        boolean offer(E e);
        E peek();
        E poll();
        E remove();
  }

每一个队列相关方法都提供了两种形式:一种如果操作失败抛出异常,另一种如果操作失败返回一个特殊值(nullfalse)。 Queue接口结构如下图所示:

队列接口结构
队列通常是,但不是必须,以FIFO(先进先出)的方式排列元素。优先级队列除外,它是根据元素的值来排序(此句话待验证)。无论使用哪种排序方式,队列的头元素始终是那个通过remove或者poll移除的元素。
有些队列实现是有边界限制的,有些没有。
队列实现类通常不允许插入null元素,而LinkedList是个例外,由于某些历史原因,它允许插入null元素。但你应该杜绝这么做,因为null被用作pollpeek的特殊返回值。
队列实现类通常不会定义基于元素版本的equalshashCode方法,而是继承来自Object的实现。
Queue接口没有定义通常用于并发编程的阻塞队列方法,而这些方法(通常是等待元素出现或者有空间可用等),定义于Queue的子接口java.util.concurrent.BlockingQueue
上一篇下一篇

猜你喜欢

热点阅读