📅  最后修改于: 2023-12-03 15:31:53.125000             🧑  作者: Mango
LinkedBlockingDeque
类是java.util.concurrent
包下的一个双向阻塞队列,它实现了Deque
接口,具有队列和栈的特征。
element()
方法是LinkedBlockingDeque
类中一个非常实用的方法,它用于获取队列头部的元素,但并不会将该元素从队列中删除。如果队列为空,该方法将抛出NoSuchElementException
异常。下面就详细介绍一下element()
方法。
public E element()
该方法没有参数。
该方法返回队列头部的元素,但是不会将该元素从队列中删除。如果队列为空,则抛出NoSuchElementException
异常。
import java.util.concurrent.LinkedBlockingDeque;
public class Demo {
public static void main(String[] args) {
LinkedBlockingDeque<String> deque = new LinkedBlockingDeque<String>();
deque.offer("apple");
deque.offer("orange");
deque.offer("banana");
System.out.println("队列头部的元素是:" + deque.element());
System.out.println("队列大小是:" + deque.size());
}
}
输出结果:
队列头部的元素是:apple
队列大小是:3
在上面的示例中,我们首先创建了一个LinkedBlockingDeque
对象,并向其添加了三个元素。然后使用element()
方法获取队列头部的元素,输出结果为apple
。最后使用size()
方法获取队列的大小,也就是3。
若队列为空,则在调用element()
方法时将抛出NoSuchElementException
异常,如下所示:
import java.util.concurrent.LinkedBlockingDeque;
import java.util.NoSuchElementException;
public class Demo {
public static void main(String[] args) {
LinkedBlockingDeque<String> deque = new LinkedBlockingDeque<String>();
System.out.println("队列头部的元素是:" + deque.element());
}
}
输出结果:
Exception in thread "main" java.util.NoSuchElementException
at java.util.concurrent.LinkedBlockingDeque.element(LinkedBlockingDeque.java:449)
at Demo.main(Demo.java:6)
LinkedBlockingDeque
是一种非常实用的双向阻塞队列,而element()
方法则是获取队列头部的元素,但是不会将该元素从队列中删除。在使用element()
方法时,一定要注意队列是否为空,以避免抛出NoSuchElementException
异常。