浅谈java中集合框架-双端队列 deque
发布人:shili8
发布时间:2023-11-20 23:09
阅读次数:0
双端队列(Deque)是Java集合框架中的一种数据结构,它可以在队列的两端进行插入和删除操作。Deque是“双端队列”的缩写,它继承自Queue接口,并且扩展了Queue接口的功能,使得我们可以在队列的两端进行操作。
在Java中,Deque接口有两个实现类:ArrayDeque和LinkedList。ArrayDeque是基于数组实现的双端队列,而LinkedList是基于链表实现的双端队列。下面我们将分别介绍这两种实现方式。
首先,我们来看ArrayDeque的使用示例:
java import java.util.ArrayDeque; import java.util.Deque; public class ArrayDequeExample { public static void main(String[] args) { // 创建一个ArrayDeque对象 Dequedeque = new ArrayDeque<>(); // 在队列的尾部插入元素 deque.offerLast(A); deque.offerLast(B); deque.offerLast(C); // 在队列的头部插入元素 deque.offerFirst(D); deque.offerFirst(E); deque.offerFirst(F); // 输出队列中的元素 System.out.println(deque); // 输出:[F E D A B C] // 从队列的头部删除元素 deque.pollFirst(); deque.pollFirst(); // 从队列的尾部删除元素 deque.pollLast(); // 输出队列中的元素 System.out.println(deque); // 输出:[D A B] } }
在上面的示例中,我们首先创建了一个ArrayDeque对象,然后使用`offerLast()`方法在队列的尾部插入元素,使用`offerFirst()`方法在队列的头部插入元素。接着,我们使用`pollFirst()`方法从队列的头部删除元素,使用`pollLast()`方法从队列的尾部删除元素。最后,我们输出队列中的元素。
接下来,我们来看LinkedList的使用示例:
java import java.util.Deque; import java.util.LinkedList; public class LinkedListExample { public static void main(String[] args) { // 创建一个LinkedList对象 Dequedeque = new LinkedList<>(); // 在队列的尾部插入元素 deque.offerLast(A); deque.offerLast(B); deque.offerLast(C); // 在队列的头部插入元素 deque.offerFirst(D); deque.offerFirst(E); deque.offerFirst(F); // 输出队列中的元素 System.out.println(deque); // 输出:[F E D A B C] // 从队列的头部删除元素 deque.pollFirst(); deque.pollFirst(); // 从队列的尾部删除元素 deque.pollLast(); // 输出队列中的元素 System.out.println(deque); // 输出:[D A B] } }
在上面的示例中,我们首先创建了一个LinkedList对象,然后使用`offerLast()`方法在队列的尾部插入元素,使用`offerFirst()`方法在队列的头部插入元素。接着,我们使用`pollFirst()`方法从队列的头部删除元素,使用`pollLast()`方法从队列的尾部删除元素。最后,我们输出队列中的元素。
总结来说,双端队列(Deque)是Java集合框架中的一种数据结构,它可以在队列的两端进行插入和删除操作。在Java中,Deque接口有两个实现类:ArrayDeque和LinkedList。我们可以根据实际需求选择合适的实现类来使用双端队列。