当前位置:   article > 正文

Java 双端队列用法

Java 双端队列用法

Java 双端队列用法

在 Java 中,双端队列(Deque)是通过 java.util.Deque 接口来实现的。Java 提供了几个实现了 Deque 接口的类,常用的有 LinkedListArrayDeque

下面是一些常见的双端队列的用法:

  1. 创建双端队列:

    Deque<String> deque = new LinkedList<>(); // 使用 LinkedList 实现双端队列
    
    • 1

    或者

    Deque<Integer> deque = new ArrayDeque<>(); // 使用 ArrayDeque 实现双端队列
    
    • 1
  2. 在队列的头部或尾部插入元素

    • 使用 addFirst() 方法在队列头部插入元素。
    • 使用 addLast() 方法在队列尾部插入元素。
    • 使用 offerFirst() 方法在队列头部插入元素,并返回 truefalse 表示是否成功。
    • 使用 offerLast() 方法在队列尾部插入元素,并返回 truefalse 表示是否成功。
    deque.addFirst("Java"); // 在队列头部插入元素
    deque.addLast("Python"); // 在队列尾部插入元素
    deque.offerFirst("C++"); // 在队列头部插入元素
    deque.offerLast("JavaScript"); // 在队列尾部插入元素
    
    • 1
    • 2
    • 3
    • 4
  3. 从队列的头部或尾部删除元素:

    • 使用 removeFirst() 方法删除并返回队列头部的元素。
    • 使用 removeLast() 方法删除并返回队列尾部的元素。
    • 使用 pollFirst() 方法删除并返回队列头部的元素,如果队列为空则返回 null
    • 使用 pollLast() 方法删除并返回队列尾部的元素,如果队列为空则返回 null
    String firstElement = deque.removeFirst(); // 删除并返回队列头部的元素
    String lastElement = deque.removeLast(); // 删除并返回队列尾部的元素
    
    • 1
    • 2
  4. 获取队列的头部或尾部元素:

    • 使用 getFirst() 方法获取但不删除队列头部的元素。
    • 使用 getLast() 方法获取但不删除队列尾部的元素。
    • 使用 peekFirst() 方法获取但不删除队列头部的元素,如果队列为空则返回 null
    • 使用 peekLast() 方法获取但不删除队列尾部的元素,如果队列为空则返回 null
    String firstElement = deque.getFirst(); // 获取但不删除队列头部的元素
    String lastElement = deque.getLast(); // 获取但不删除队列尾部的元素
    
    • 1
    • 2

双端队列可以灵活地在队列的两端进行插入、删除和获取操作,适用于各种场景,如实现栈、队列、循环队列等。根据具体需求,选择合适的实现类(如 LinkedListArrayDeque)来创建双端队列对象即可。

import java.util.Deque;
import java.util.LinkedList;

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

        // 在队列的尾部插入元素
        deque.offerLast("Java");
        deque.offerLast("Python");
        deque.offerLast("C++");

        // 在队列的头部插入元素
        deque.offerFirst("JavaScript");

        // 输出队列中的所有元素
        System.out.println("Deque elements: " + deque);

        // 从队列的头部和尾部分别删除元素
        String firstElement = deque.pollFirst();
        String lastElement = deque.pollLast();

        // 输出删除的元素
        System.out.println("Removed first element: " + firstElement);
        System.out.println("Removed last element: " + lastElement);

        // 获取但不删除队列的头部和尾部元素
        String firstElementPeek = deque.peekFirst();
        String lastElementPeek = deque.peekLast();

        // 输出获取的元素
        System.out.println("First element peek: " + firstElementPeek);
        System.out.println("Last element peek: " + lastElementPeek);
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/77240
推荐阅读
相关标签
  

闽ICP备14008679号