java.util.Deque学习笔记
2016-11-07 17:09
381 查看
概述
Deque(Double ended queue)是一种线性集合,其允许在集合两端进行数据的插入和删除操作。大多数的Deque实现没有确定的可保存元素数目,但是在本接口中,仍然提供了对容量限制型的队列的支持。本接口中提供了可以双向访问队列中元素的方法,与基本队列Queue类似,其提供的方法在执行失败时均存在两种处理形式:抛出异常或者返回一个特殊值(一般为null或者false)。其中第二中形式的插入操作是为有容量限制的Deque实现设计,而一般情况下,插入操作不会出现失败的情况。其具体方法的处理逻辑如下所示:
- | 头部访问 | 尾部访问 | ||
---|---|---|---|---|
操作 | 抛出异常 | 返回特殊值 | 抛出异常 | 返回特殊值 |
插入操作 | addFirst(e) | offerFirst(e) | addLast(e) | offerLast(e) |
删除操作 | removeFirst() | p 4000 ollFirst() | removeLast() | pollLast() |
访问操作 | getFirst() | peekFirst() | getLast() | peekLast() |
Queue Method | Equivalent Deque Method |
---|---|
add(e) | addLast(e) |
offer(e) | offerLast(e) |
remove() | removeFirst() |
poll() | pollFirst() |
element() | getFirst() |
peek() | peekFirst() |
Stack Method | Equivalent Deque Method |
---|---|
add(e) | addFirst(e) |
pop() | removeFirst() |
peek() | peekFirst() |
方法介绍
void addFirst(E e);
将元素插入到队列的头部。当队列没有可用容量时,则抛出IllegalStateException异常。在实用过程中,建议使用
offerFirst方法。
void addLast(E e);
将元素插入到队列的尾部,与
add方法等价。当队列没有可用容量时,则抛出IllegalStateException异常。在实用过程中,建议使用
offerLast方法。
boolean offerFirst(E e)
将元素插入队列的头部。其与
addFirst(e)的区别仅有一点,即:当队列中没有可用容量时候,
addFirst将抛出
IllegalStateException异常,而
offerFirst则是返回false。
boolean offerLast(E e);
将元素插入到队列的尾部。其与
addLast(e)的区别仅有一点,即:当队列中没有可用容量时候,
addLast将抛出
IllegalStateException异常,而
offerLast则是返回false。
E removeFirst();
删除队列头部元素,并将其返回。当队列为空时,则抛出
NoSuchElementException异常.
E removeLast();
删除队列尾部元素,并将其返回。当队列为空时,抛出
NoSuchElementException异常.
E pollFirst();
删除队列头部元素,并将其返回。当队列为空时,返回null。
E pollLast();
删除队列尾部元素,并将其返回。当队列为空时,返回null。
E getFirst();
返回列表头部的元素,当列表为空时,抛出
NoSuchElementException异常。
E getLast();
返回列表尾部的元素,当列表为空时,抛出
NoSuchElementException异常。
E peekFirst();
返回列表头部的元素,当列表为空时,返回null。
E peekLast();
返回列表尾部的元素,当列表为空时,返回null。
boolean removeFirstOccurrence(Object o);
从队列中删除第一个与
o相等的元素。当队列中不包含本元素时,则维持不变。即:删除第一个满足条件
(o==null ? e==null : o.equals(e))的元素。当队列中包含本元素时,返回true,否则返回false。
boolean removeLastOccurrence(Object o);
从队列中删除最后一个与
o相等的元素。当队列中不包含本元素时,则维持不变。即:删除最后一个满足条件
(o==null ? e==null : o.equals(e))的元素。当队列中包含本元素时,返回true,否则返回false。
void push(E e);
将元素
e插入到由双向队列描述的栈中,即:将元素插入到列表的头部。当列表中没有空余容量时,则抛出
IllegalStateException方法。这个方法与双向队列的
addFirst(e)等价。
E pop();
从由双向队列描述的栈中弹出一个元素,即:返回双向队列中的头部元素,并将其从队列中删除。当队列中没有元素时,抛出
NoSuchElementException异常,与
removeFirst()等价。
boolean remove(Object o);
删除队列中第一个与
o相等的元素。如果当前队列不包含此元素时,则队列保持不变。即:删除队列中第一个满足
(o==null ? e==null : o.equals(e))的元素。如果队列包含此元素,则返回true,否则返回false。此方法与
removeFirstOccurrence相同。
boolean contains(Object o);
当队列中包含元素
o时,返回true,否则返回false。即:队列中至少又一个元素满足条件
(o==null ? e==null : o.equals(e))时,则返回true,否则返回false。
public int size();
返回队列中元素的个数。
Iterator<E> iterator();
返回基于队列元素的迭代器。迭代器将从头至尾遍历队列中的元素。
Iterator<E> descendingIterator();
返回基于列表元素的逆向迭代器。即:由队列尾到队列头返回队列中的元素。
相关文章推荐
- java.util.Properties类 学习笔记
- [分享]java.util包的学习笔记一
- java.util.Map学习笔记
- 学习笔记 - java.util.concurrent 多线程框架(引)
- java.util.Properties类 学习笔记
- 黑马程序员:java.util.Properties类 学习笔记
- java.util.Properties类 学习笔记
- java.util.Properties类 学习笔记
- 黑马程序员_学习笔记:12) 其他API:java.lang.Runtime、java.util.Math、java.util.Date、java.util. Calendar
- java.util.Properties类 学习笔记
- java.util.Random学习笔记
- java.util.Random学习笔记
- java.util.concurrent 学习笔记(2) 线程池基础
- java.util.Properties类 学习笔记
- java.util.Properties类 学习笔记
- JAVA学习笔记43——其他容器简介1:Queue+Deque+Enumeration
- java.util.Properties类 学习笔记
- java.util.concurrent 学习笔记-1
- java.util.Properties类 学习笔记
- java.util.concurrent 学习笔记(1)