📅  最后修改于: 2023-12-03 15:16:20.787000             🧑  作者: Mango
在Java中,BlockingDeque是一个阻塞式双端队列,可以同时从队列的头部或尾部进行插入或删除操作。该类提供了takeFirst()方法,该方法用于从队列的头部获取并删除元素。
E takeFirst() throws InterruptedException
此方法没有任何参数。
该方法返回取出的元素。
当队列为空时,takeFirst()方法将阻塞,直到队列中有可用元素或线程被中断抛出InterruptedException。
以下是一个使用BlockingDeque takeFirst()方法的简单示例:
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<>(5);
//插入元素到双端队列
deque.add("Java");
deque.add("Python");
deque.add("C++");
deque.add("C#");
deque.add("PHP");
//从双端队列中获取并删除第一个元素,并打印
String first = deque.takeFirst();
System.out.println("First element: " + first);
//从双端队列中获取并删除最后一个元素,并打印
String last = deque.takeLast();
System.out.println("Last element: " + last);
//打印当前队列中的元素
System.out.println("Remaining elements: " + deque);
}
}
输出结果:
First element: Java
Last element: PHP
Remaining elements: [Python, C++, C#]
在此示例中,我们创建了一个BlockingDeque对象并将元素插入到队列中。然后,我们使用takeFirst()方法从队列的头部获取第一个元素,并使用takeLast()方法从队列的尾部获取最后一个元素。最后,我们打印队列中剩余元素。