赞
踩
在 Java 中,双端队列(Deque)是通过 java.util.Deque
接口来实现的。Java 提供了几个实现了 Deque
接口的类,常用的有 LinkedList
和 ArrayDeque
。
下面是一些常见的双端队列的用法:
创建双端队列:
Deque<String> deque = new LinkedList<>(); // 使用 LinkedList 实现双端队列
或者
Deque<Integer> deque = new ArrayDeque<>(); // 使用 ArrayDeque 实现双端队列
在队列的头部或尾部插入元素:
addFirst()
方法在队列头部插入元素。addLast()
方法在队列尾部插入元素。offerFirst()
方法在队列头部插入元素,并返回 true
或 false
表示是否成功。offerLast()
方法在队列尾部插入元素,并返回 true
或 false
表示是否成功。deque.addFirst("Java"); // 在队列头部插入元素
deque.addLast("Python"); // 在队列尾部插入元素
deque.offerFirst("C++"); // 在队列头部插入元素
deque.offerLast("JavaScript"); // 在队列尾部插入元素
从队列的头部或尾部删除元素:
removeFirst()
方法删除并返回队列头部的元素。removeLast()
方法删除并返回队列尾部的元素。pollFirst()
方法删除并返回队列头部的元素,如果队列为空则返回 null
。pollLast()
方法删除并返回队列尾部的元素,如果队列为空则返回 null
。String firstElement = deque.removeFirst(); // 删除并返回队列头部的元素
String lastElement = deque.removeLast(); // 删除并返回队列尾部的元素
获取队列的头部或尾部元素:
getFirst()
方法获取但不删除队列头部的元素。getLast()
方法获取但不删除队列尾部的元素。peekFirst()
方法获取但不删除队列头部的元素,如果队列为空则返回 null
。peekLast()
方法获取但不删除队列尾部的元素,如果队列为空则返回 null
。String firstElement = deque.getFirst(); // 获取但不删除队列头部的元素
String lastElement = deque.getLast(); // 获取但不删除队列尾部的元素
双端队列可以灵活地在队列的两端进行插入、删除和获取操作,适用于各种场景,如实现栈、队列、循环队列等。根据具体需求,选择合适的实现类(如 LinkedList
或 ArrayDeque
)来创建双端队列对象即可。
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);
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。