Skip to content

Deque(双端队列)是一种数据结构,它允许在两端进行插入和删除操作。它可以被视为既有栈的特性(后进先出),又有队列的特性(先进先出)。

在 Java 中,你可以使用java.util.Deque接口来实现双端队列。常用的实现类是ArrayDequeLinkedList

下面是一个简单示例代码,演示了如何使用ArrayDeque

import java.util.ArrayDeque;
import java.util.Deque;

public class DequeExample {
    public static void main(String[] args) {
        // 创建一个双端队列
        Deque<String> deque = new ArrayDeque<>();

        // 在队尾添加元素
        deque.addLast("A");
        deque.addLast("B");
        deque.addLast("C");

        // 在队头添加元素
        deque.addFirst("D");
        deque.addFirst("E");

        System.out.println("双端队列的元素: " + deque);

        // 获取并移除队头元素
        String firstElement = deque.removeFirst();
        System.out.println("移除的队头元素: " + firstElement);

        // 获取并移除队尾元素
        String lastElement = deque.removeLast();
        System.out.println("移除的队尾元素: " + lastElement);

        System.out.println("剩余的双端队列元素: " + deque);
    }
}

输出结果:

双端队列的元素: [E, D, A, B, C]
移除的队头元素: E
移除的队尾元素: C
剩余的双端队列元素: [D, A, B]

在这个示例中,我们首先创建了一个ArrayDeque对象,并使用addLast()方法在队尾添加元素。然后使用addFirst()方法在队头添加元素。

接下来,我们使用removeFirst()方法获取并移除队头元素,再使用removeLast()方法获取并移除队尾元素。 最后,我们打印出剩余的双端队列元素。

在使用Deque时,你可以根据需求选择合适的实现类(如ArrayDequeLinkedList),它们有不同的性能特点和适用场景。