Java Deque容器
Deque是Java集合框架中的一种双端队列容器。Deque是"Double Ended Queue"的缩写,表示它可以在两端插入和删除元素。
Deque的特点
Deque容器具有以下特点:
- 元素可以在队列的前端和后端添加和删除。
- 可以包含重复的元素。
- 可以按照插入顺序进行迭代。
- 提供了在队列中查找、删除和替换操作的方法。
- 不允许插入Null元素。
Deque的实现类
Java提供了两个主要的Deque实现类:
ArrayDeque
: 使用数组实现的双端队列,可以动态扩展。LinkedList
: 使用链表实现的双端队列,没有固定大小限制。
使用Deque
创建Deque对象
可以使用如下代码创建一个Deque对象:
Deque<String> deque = new ArrayDeque<>();
元素的插入和删除
Deque对象提供了以下方法用于在队列的前端和后端插入和删除元素:
void addFirst(E e)
:在队列的前端添加元素。void addLast(E e)
:在队列的后端添加元素。boolean offerFirst(E e)
:在队列的前端添加元素,并返回添加是否成功。boolean offerLast(E e)
:在队列的后端添加元素,并返回添加是否成功。E removeFirst()
:删除并返回队列的第一个元素。E removeLast()
:删除并返回队列的最后一个元素。E pollFirst()
:删除并返回队列的第一个元素,如果队列为空则返回null。E pollLast()
:删除并返回队列的最后一个元素,如果队列为空则返回null。
下面是一个示例:
Deque<String> deque = new ArrayDeque<>();
// 在队列的前端插入元素
deque.addFirst("A");
deque.addFirst("B");
deque.addFirst("C");
// 在队列的后端插入元素
deque.addLast("X");
deque.addLast("Y");
deque.addLast("Z");
// 删除并返回队列的第一个元素
String firstElement = deque.removeFirst();
System.out.println("First element: " + firstElement);
// 删除并返回队列的最后一个元素
String lastElement = deque.removeLast();
System.out.println("Last element: " + lastElement);
输出结果:
First element: C
Last element: Z
其他操作
除了插入和删除元素以外,Deque还提供了以下常用操作:
E getFirst()
:返回队列的第一个元素,但不删除它。E getLast()
:返回队列的最后一个元素,但不删除它。E peekFirst()
:返回队列的第一个元素,如果队列为空则返回null。E peekLast()
:返回队列的最后一个元素,如果队列为空则返回null。boolean removeFirstOccurrence(Object o)
:删除第一个等于给定元素的元素。boolean removeLastOccurrence(Object o)
:删除最后一个等于给定元素的元素。
下面是一个示例:
Deque<String> deque = new ArrayDeque<>();
deque.add("A");
deque.add("B");
deque.add("C");
deque.add("B");
// 返回队列的第一个元素
String firstElement = deque.getFirst();
System.out.println("First element: " + firstElement);
// 返回队列的最后一个元素
String lastElement = deque.getLast();
System.out.println("Last element: " + lastElement);
// 删除第一个等于给定元素的元素
boolean removed = deque.removeFirstOccurrence("B");
System.out.println("Removed: " + removed);
// 删除最后一个等于给定元素的元素
removed = deque.removeLastOccurrence("B");
System.out.println("Removed: " + removed);
输出结果:
First element: A
Last element: B
Removed: true
Removed: true
总结
Deque是Java集合框架中的一种双端队列容器,可以在队列的前端和后端插入和删除元素。它有两个主要的实现类:ArrayDeque
和LinkedList
。Deque提供了丰富的方法用于插入、删除和查找元素。在实际开发中,