java.util.Queue<E> 源码分析(JDK1.7)
---------------------------------------------------------------------------------
java.util.Queue<E>是一个接口,它的定义如下:
1 public interface Queue<E> extends Collection<E>{ 2 3 //methods 4 }
(1)java.util.Queue<E>接口继承自java.util.Collection<E>接口
(2)java.util.Queue<E>接口约定了队列的基本操作:插入、提取、检查。每个操作都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null或false)
(3)队列通常以FIFO的方式排序各个元素
下面来看一幅图:
----------------------------------------------------------------------------------------
下面来看看java.util.Queue<E>中具体有哪些方法:
插入操作 | boolean add(E e) | 将指定的元素插入此队列,成功则返回true,失败则抛出异常 |
boolean offer(E e) | 将指定的元素插入此队列 | |
移除操作 | E remove() | 获取并移除此队列的头。此方法与poll唯一不同在于:此队列为空时将抛出一个异常 |
E poll() | 获取并移除此队列的头,如果此队列为空,则返回null | |
检查操作 | E element() | 获取,但是不移除此队列的头。此方法与peek唯一的不同在于:此队列为空时将抛出一个异常 |
E peek() | 获取但不移除此队列的头;如果此队列为空,则返回 null。 |
从java.util.Collection<E>接口继续的方法有:addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
----------------------------------------------------------------------------------------
java.util.Queue<E>源码如下:(看看下面的源码,定义的很规范,各种操作都有-----> 此时应该想到它的实现类该有多可怜,要实现多少方法呀。~_~)
1 package java.util; 2 3 4 public interface Queue<E> extends Collection<E> { 5 6 boolean add(E e); 7 8 boolean offer(E e); 9 10 E remove(); 11 12 E poll(); 13 14 E element(); 15 16 E peek(); 17 }