JDK源码(1.7) -- java.util.Queue

时间:2021-09-16 15:25:59

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的方式排序各个元素

下面来看一幅图:

JDK源码(1.7) -- java.util.Queue

----------------------------------------------------------------------------------------

下面来看看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 }