📅  最后修改于: 2023-12-03 15:01:51.292000             🧑  作者: Mango
Java中的BlockingDeque是一种阻塞队列,是Java.concurrent包中提供的一种线程安全的队列。BlockingDeque继承自Deque接口,可以同时在队列的头部和尾部添加和删除元素,并且可以通过设置容量来实现阻塞等待。removeLastOccurrence()是BlockingDeque接口中的一个方法,用于移除队列中最后出现的指定元素。
boolean removeLastOccurrence(Object o)
如果队列中存在指定元素,则返回true;否则返回false。
import java.util.concurrent.BlockingDeque;
import java.util.concurrent.LinkedBlockingDeque;
public class RemoveLastOccurrenceExample {
public static void main(String[] args) throws InterruptedException {
// 创建一个容量为10的阻塞双端队列
BlockingDeque<Integer> deque = new LinkedBlockingDeque<>(10);
// 添加元素到队列尾部
for (int i = 0; i < 10; i++) {
deque.add(i);
}
// 添加元素到队列头部
deque.addFirst(5);
// 移除队列中最后出现的元素
boolean result = deque.removeLastOccurrence(5);
System.out.println("移除结果:" + result);
System.out.println("移除后队列中的元素:" + deque);
}
}
在上述代码中,我们创建了一个容量为10的阻塞双端队列,并向队列尾部添加了10个元素。接着,我们向队列头部添加了数字5,并调用removeLastOccurrence()方法移除了最后出现的数字5。最后,我们通过打印队列元素来验证是否成功移除。运行结果如下:
移除结果:true
移除后队列中的元素:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
从输出结果中可以看出,数字5已经被成功移除。注意,如果队列中不存在指定元素,则removeLastOccurrence()方法不会做任何改变,并且返回false。