📅  最后修改于: 2023-12-03 15:16:20.751000             🧑  作者: Mango
BlockingDeque
是Java中的双端阻塞队列,它是阻塞的,当队列为空或已满时,线程会阻塞直到队列有空间或有元素。
pollFirst()
方法是BlockingDeque
的一个实现,它用于获取并移除队列头部的元素。如果队列为空,返回null
。
E pollFirst()
以下示例演示了如何使用BlockingDeque pollFirst()
方法从队列中获取并移除队列头部的元素:
import java.util.concurrent.BlockingDeque;
import java.util.concurrent.LinkedBlockingDeque;
public class BlockingDequeExample {
public static void main(String[] args) throws InterruptedException {
BlockingDeque<String> deque = new LinkedBlockingDeque<>(2);
// 添加元素到队列尾部
deque.addLast("element 1");
deque.addLast("element 2");
// 从队列头部获取并移除元素
String firstElement = deque.pollFirst();
System.out.println("First Element: " + firstElement);
System.out.println("Deque after pollFirst(): " + deque);
// 从队列头部获取并移除元素
String secondElement = deque.pollFirst();
System.out.println("Second Element: " + secondElement);
System.out.println("Deque after pollFirst(): " + deque);
// 从队列头部获取并移除元素,队列为空,返回null
String thirdElement = deque.pollFirst();
System.out.println("Third Element: " + thirdElement);
System.out.println("Deque after pollFirst(): " + deque);
}
}
输出:
First Element: element 1
Deque after pollFirst(): [element 2]
Second Element: element 2
Deque after pollFirst(): []
Third Element: null
Deque after pollFirst(): []
这个示例创建了一个容量为2的BlockingDeque
,并向其添加了两个元素。然后,它两次使用pollFirst()
方法从队列头部获取并移除元素。第一次获取的元素是“element 1”,第二次获取的元素是“element 2”。第三次获取的元素是null,因为队列为空。