Java LinkedBlockingDeque的remove()方法
LinkedBlockingDeque 类的 remove() 方法可删除双向队列的头部元素。如果双向队列为空,该方法会抛出NoSuchElementException异常。
语法:
public E remove()
参数: 该方法不接受任何参数。
返回值: 该方法不返回任何值。
异常: 如果Deque为空,则该方法会抛出NoSuchElementException异常。
下面的程序示例演示了LinkedBlockingDeque的remove()方法:
程序1:
// Java程序演示LinkedBlockingDeque的remove()方法
import java.util.concurrent.LinkedBlockingDeque;
import java.util.*;
public class GFG {
public static void main(String[] args)
throws InterruptedException
{
// 创建LinkedBlockingDeque对象
LinkedBlockingDeque<Integer> LBD
= new LinkedBlockingDeque<Integer>();
// 将数字添加到LinkedBlockingDeque的末尾
LBD.add(7855642);
LBD.add(35658786);
LBD.add(5278367);
LBD.add(74381793);
// 打印双向队列
System.out.println("Linked Blocking Deque: " + LBD);
// 删除队列的前一个元素
LBD.remove();
System.out.println("Linked Blocking Deque: " + LBD);
}
}
Linked Blocking Deque: [7855642, 35658786, 5278367, 74381793]
Linked Blocking Deque: [35658786, 5278367, 74381793]
程序2:
// Java程序演示LinkedBlockingDeque的remove()方法
import java.util.concurrent.LinkedBlockingDeque;
import java.util.*;
public class GFG {
public static void main(String[] args)
throws NoSuchElementException
{
// 创建LinkedBlockingDeque对象
LinkedBlockingDeque<Integer> LBD
= new LinkedBlockingDeque<Integer>(6);
// 将数字添加到LinkedBlockingDeque的末尾
LBD.add(7855642);
LBD.add(35658786);
LBD.add(5278367);
LBD.add(74381793);
// 打印双向队列
System.out.println("Linked Blocking Deque: " + LBD);
// Deque为空
LBD.clear();
// 抛出异常
LBD.remove();
}
}
输出:
Exception in thread "main" java.util.NoSuchElementException
at java.util.concurrent.LinkedBlockingDeque.removeFirst(LinkedBlockingDeque.java:453)
at java.util.concurrent.LinkedBlockingDeque.remove(LinkedBlockingDeque.java:672)
at GFG.main(GFG.java:30)
参考: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/LinkedBlockingDeque.html#remove–
极客教程