Deque 定义:
JAVA集合提供的一个接口,用于实现双端队列
Deque实现类:
LinkedList 、ArrayList
Deque提供的方法:
作为一双端队列,Deque既能实现栈的特点,也能实现队列的特点。不少文章都是以这两种数据结构区分Deque提供的方法的。本文建议不用这种记法,而是去记如下几种方法:
- 向首部添加元素
addFirst()
- 向尾部添加元素
addLast()
- 删除首部元素
removeFirst()
- 删除尾部元素
removeLast()
- 得到首元素(有区别于删除)
peekFirst()
- 得到尾元素(有区别于删除)
peekLast()
由上,可以观察出通过 First 和 Last 我们可以很好的区别出操作元素的位置,就我而言相较于一个个比对 Deque方法 与 Stack方法 及 Queue方法的方式去记忆,这种方式更便于理解和记忆。
注意:Stack 已经过时, JAVA官方推荐使用 Deque 来实现栈
图解:
完整测试代码
public static void main(String[] args) {
Deque<Integer> deque = new LinkedList<>();
deque.addLast(1);
deque.addLast(2);
deque.addLast(3);
deque.addLast(4);
deque.addLast(5);
deque.addLast(6);
System.out.println("deque.peekFirst() = " + deque.peekFirst());
System.out.println("deque.peekLast() = " + deque.peekLast());
deque.addFirst(0);
deque.addLast(7);
deque.addLast(8);
deque.removeLast();
while (!deque.isEmpty()){
System.out.println(deque.removeFirst());
}
}
在无数个星星闪耀的晚上,我敲着这些浅显的文章,斗胆使用和牛顿前辈一样的话,在我面前是巨大的汪洋大海,而我却在为捡拾到海边的贝壳而沾沾自喜。我们都是追求大海过程中的人,希望我的文章对你有一点点帮助,与你共勉。