📅  最后修改于: 2023-12-03 15:16:20.727000             🧑  作者: Mango
BlockingDeque 接口是 Queue 接口和 BlockingQueue 接口的合并,它定义了一个双端队列(deque),并且其中的元素可以在队列的两端插入和移除。
add() 方法是向 BlockingDeque 队列中添加元素的方法之一,该方法会将指定的元素插入到队列尾部。
boolean add(E e)
e
:要添加到队列中的元素如果成功添加元素,则返回 true
;如果队列已满,则抛出 IllegalStateException 异常。
import java.util.concurrent.BlockingDeque;
import java.util.concurrent.LinkedBlockingDeque;
public class BlockingDequeExample {
public static void main(String[] args) {
// 创建 BlockingDeque 队列
BlockingDeque<String> deque = new LinkedBlockingDeque<>(2);
// 向队列尾部添加元素
deque.add("A");
deque.add("B");
System.out.println(deque); // 输出: [A, B]
// 尝试向队列尾部添加元素
if (!deque.offer("C")) {
System.out.println("队列已满!");
}
// 弹出队列头部元素
String first = deque.pollFirst();
System.out.println(first); // 输出: A
System.out.println(deque); // 输出: [B]
// 向队列头部添加元素
deque.addFirst("D");
System.out.println(deque); // 输出: [D, B]
// 弹出队列尾部元素
String last = deque.pollLast();
System.out.println(last); // 输出: B
System.out.println(deque); // 输出: [D]
}
}
[A, B]
A
[B]
[D, B]
B
[D]