持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
源码
package java.util;
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);
// *** Queue methods ***
boolean add(E e);
boolean offer(E e);
E remove();
E poll();
E element();
E peek();
// *** Stack methods ***
void push(E e);
E pop();
// *** Collection methods ***
boolean remove(Object o);
boolean contains(Object o);
public int size();
Iterator<E> iterator();
Iterator<E> descendingIterator();
}
方法总结
void addFirst(E e):如果在不违反容量限制的情况下立即插入指定元素在这个 deque 的前面,如果当前没有可用空间抛出 IllegalStateException。当使用容量受限的 deque,通常更适合使用 offerFirst 方法void addLast(E e):如果在不违反容量限制的情况下立即插入指定元素在这个 deque 的尾部,如果当前没有可用空间抛出 IllegalStateException。当使用容量受限的 deque,通常更适合使用 offerLast 方法boolean offerFirst(E e):在这个 deque 的前面插入指定元素,除非它违反容量限制。当使用容量限制的 deque,这个方法通常比 addFirst 方法更合适,addFirst 只有在抛出异常时插入元素失败boolean offerLast(E e):在这个 deque 的尾部插入指定元素,除非它违反容量限制。当使用容量限制的 deque,这个方法通常比 addLast 方法更合适,addLast 只有在抛出异常时插入元素失败E removeFirst():检索并且移除这个 deque 第一个元素,这个方法与 pollFirst 不同在于,当 deque 是空,它抛出异常E removeLast():检索并且移除这个 deque 最后一个元素,这个方法与 pollLast 不同在于,当 deque 是空,它抛出异常E pollFirst():检索并且移除这个 deque 第一个元素,或者返回 null 如果这个 deque 是空E pollLast():检索并且移除这个 deque 最后一个元素,或者返回 null 如果这个 deque 是空E getFirst():检索但不移除这个 deque 第一个元素,这个方法与 peekFirst 不同在于,当 deque 是空,它抛出异常E getLast():检索但不移除这个 deque 最后一个元素,这个方法与 peekLast 不同在于,当 deque 是空,它抛出异常E peekFirst():检索但不移除这个 deque 第一个元素,或者返回 null 如果这个 deque 是空E peekLast():检索但不移除这个 deque 最后一个元素,或者返回 null 如果这个 deque 是空boolean removeFirstOccurrence(Object o):移除指定元素在这个 deque 第一次出现,如果 deque 不包含这个元素,它不会改变。更准确地说,移除最后一个元素 e (o==null ? e==null : o.equals(e))(如果这样的元素存在)。如果这个 deque 包含指定元素(或等效,如果这个 deque 因为调用结果而改变)返回 trueboolean removeLastOccurrence(Object o):移除指定元素在这个 deque 最后一次出现,如果 deque 不包含这个元素,它不会改变。更准确地说,移除最后一个元素 e (o==null ? e==null : o.equals(e))(如果这样的元素存在)。如果这个 deque 包含指定元素(或等效,如果这个 deque 因为调用结果而改变)返回 trueboolean add(E e):如果在不违反容量限制的情况下立即插入指定元素到这个 queue 表示的队列(换句话说,在这个 deque 的尾部),成功返回 true,如果当前没有可用空间抛出 IllegalStateException,当使用容量受限的 deque,通常更合适使用 off * 这个方法等效于addLastboolean offer(E e):如果在不违反容量限制的情况下立即插入指定元素到这个 queue 表示的队列(换句话说,在这个 deque 的尾部),成功返回 true,如果当前没有可用空间返回 false。当使用容量受限的 deque,这个方法通常比 add 方法更合适,add 只有在抛出异常时插入元素失败- 这个方法等效于
offerLast
- 这个方法等效于
E remove():检索并且移除这个 deque 表示的队头(换句话说,这个 deque 的第一个元素),这个方法与 poll 不同在于,当 deque 是空,它抛出异常- 这个方法等效于
removeFirst()
- 这个方法等效于
E poll():检索并且移除这个 deque 表示的队头(换句话说,这个 deque 的第一个元素),或者返回 null 如果 deque 是空- 这个方法等效于
pollFirst()
- 这个方法等效于
E element():检索但不移除这个 deque 表示的队头(换句话说,这个 deque 的第一个元素),这个方法与 peek 不同在于,当 deque 是空,它抛出异常- 这个方法等效于
getFirst()
- 这个方法等效于
E peek():检索但不移除这个 deque 表示的队头(换句话说,这个 deque 的第一个元素),或者返回 null 如果 deque 是空- 这个方法等效于
peekFirst()
- 这个方法等效于
void push(E e):如果在不违反容量限制的情况下立即推送一个对象到这个 deque 表示的栈(换句话说,在这个 deque 的头),如果当前没有可用空间抛出 IllegalStateException- 这个方法等效于
addFirst
- 这个方法等效于
E pop():从这个 deque 表示的栈弹出一个对象,换句话说,移除并且返回这个 deque 的第一个元素- 这个方法等效于
removeFirst()
- 这个方法等效于
boolean remove(Object o):从这个 deque 移除指定元素第一次出现,如果 deque 不包含这个元素,它不会改变。更准确的说,移除第一个元素 e (o==null ? e==null : o.equals(e))(如果这样的元素存在)。如果这个 deque 包含指定元素(或等效,如果这个 deque 因为调用结果而改变)返回 true)- 这个方法等效于
removeFirstOccurrence(Object)
- 这个方法等效于
boolean contains(Object o):返回 true,如果这个 deque 包含指定元素,更准确的说,当且仅当这个 deque 包含至少一个元素 e (o==null ? e==null : o.equals(e)).,返回 truepublic int size():返回这个 deque 的元素数量Iterator<E> iterator():按照正确的顺序返回在这个 deque 的元素的迭代器。元素将按从第一个(头部)到最后一个(尾部)的顺序返回Iterator<E> descendingIterator():按照相反的顺序返回在这个 deque 的元素的迭代器。元素将按从最后一个(尾部)到第一个(头部)顺序返回