JDK源码阅读之Queue接口和Deque接口
2014-03-27 17:45
387 查看
Queue 除了基本的
false,具体取决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的。
Deque支持在两端插入和移除元素。大多数 Deque 实现对于它们能够包含的元素数没有固定限制,但此接口既支持有容量限制的双端队列,也支持没有固定大小限制的双端队列。
//继承于Collection接口
public interface Queue<E> extends Collection<E> {
boolean add(E e);//添加元素,如果空间有限制,则抛出异常
boolean offer(E e);//添加元素,如果空间有限制,不会抛出异常
E remove();//获取并移除队列头元素
E poll();//移除队列头部元素
E element();//获取元素,但不移除元素
E peek();//获取元素
}
//继承了Queue接口
public interface Deque<E> extends Queue<E> {
void addFirst(E e);//头部添加元素,如果容量有限值,添加失败时,抛出异常
void addLast(E e);//尾部添加元素,如果容量有限制,添加失败时,抛出异常
boolean offerFirst(E e);//头部添加元素,如果添加失败,不抛出异常
boolean offerLast(E e);//头部添加元素,如果添加失败,则不抛出异常
E removeFirst();//获取并移除队列头元素
E removeLast();//获取并移除队列尾元素
E pollFirst();//获取并移除队列头元素
E pollLast();//获取并移除队列尾元素
E getFirst();//获取队列头元素
E getLast();//获取队列尾元素
E peekFirst();//获取头部元素
E peekLast();//获取尾部元素
boolean removeFirstOccurrence(Object o);//从此双端队列移除第一次出现的指定元素。
boolean removeLastOccurrence(Object o);//从此双端队列移除最后一次出现的指定元素。
boolean add(E e);//添加元素到尾部,超过容量限制,抛出异常
boolean offer(E e);//添加元素到尾部,超过容量限制,不抛出异常
E remove();//获取并移除队列头元素
E poll();//获取并移除队列头元素
E element();//获取元素,并不删除元素
E peek();//获取元素
void push(E e);//压入元素
E pop();//弹出元素
boolean remove(Object o);//从队列移除第一次出现的元素o
boolean contains(Object o);//判断是否有元素o
public int size();//返回队列的长度
Iterator<E> iterator();
Iterator<E> descendingIterator();
}
Collection操作外,还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null 或
false,具体取决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的。
Deque支持在两端插入和移除元素。大多数 Deque 实现对于它们能够包含的元素数没有固定限制,但此接口既支持有容量限制的双端队列,也支持没有固定大小限制的双端队列。
//继承于Collection接口
public interface Queue<E> extends Collection<E> {
boolean add(E e);//添加元素,如果空间有限制,则抛出异常
boolean offer(E e);//添加元素,如果空间有限制,不会抛出异常
E remove();//获取并移除队列头元素
E poll();//移除队列头部元素
E element();//获取元素,但不移除元素
E peek();//获取元素
}
//继承了Queue接口
public interface Deque<E> extends Queue<E> {
void addFirst(E e);//头部添加元素,如果容量有限值,添加失败时,抛出异常
void addLast(E e);//尾部添加元素,如果容量有限制,添加失败时,抛出异常
boolean offerFirst(E e);//头部添加元素,如果添加失败,不抛出异常
boolean offerLast(E e);//头部添加元素,如果添加失败,则不抛出异常
E removeFirst();//获取并移除队列头元素
E removeLast();//获取并移除队列尾元素
E pollFirst();//获取并移除队列头元素
E pollLast();//获取并移除队列尾元素
E getFirst();//获取队列头元素
E getLast();//获取队列尾元素
E peekFirst();//获取头部元素
E peekLast();//获取尾部元素
boolean removeFirstOccurrence(Object o);//从此双端队列移除第一次出现的指定元素。
boolean removeLastOccurrence(Object o);//从此双端队列移除最后一次出现的指定元素。
boolean add(E e);//添加元素到尾部,超过容量限制,抛出异常
boolean offer(E e);//添加元素到尾部,超过容量限制,不抛出异常
E remove();//获取并移除队列头元素
E poll();//获取并移除队列头元素
E element();//获取元素,并不删除元素
E peek();//获取元素
void push(E e);//压入元素
E pop();//弹出元素
boolean remove(Object o);//从队列移除第一次出现的元素o
boolean contains(Object o);//判断是否有元素o
public int size();//返回队列的长度
Iterator<E> iterator();
Iterator<E> descendingIterator();
}
相关文章推荐
- JDK源码阅读之Iterable接口,使你的类可以迭代遍历
- JDK源码阅读(三) Collection<T>接口,Iterable<T>接口
- 【JDK源码阅读11-util】Set接口---LinkedHashSet
- JDK源码阅读之List接口
- JDK 1.8 ArrayBlockingQueue 源码阅读(一)插入
- JDK源码阅读之Collection集合接口
- 【JDK源码阅读13-util】Set接口---TreeSet
- JDK 1.8 ArrayBlockingQueue 源码阅读(二)获取
- JDK源码阅读之Serializable接口
- JDK源码阅读之Set不重复元素集合接口
- 给jdk写注释系列之jdk1.6容器(11)-Queue之ArrayDeque源码解析
- 【JDK源码阅读10-util】Set接口---HashSet
- JDK源码阅读之Map接口和Set接口
- JDK源码阅读之Runnable接口
- JDK源码阅读之Iterator迭代器接口
- JDK源码分析—— ArrayBlockingQueue 和 LinkedBlockingQueue
- JDK源码阅读——Collection
- Java中Queue和Deque的接口说明
- JDK之ArrayDeque源码解析
- Java Collections Framework之Queue(LinkedList实现)源码分析(基于JDK1.6)