Java中的Deque offerFirst()方法

Java中的Deque offerFirst()方法

Deque接口offerFirst(E e) 方法可以在不违反容量限制的情况下立即将指定的元素插入到Deque的前面。此方法优于addFirst()方法,因为当容器的容量已满时,此方法不会抛出异常,而是返回false。

语法:

boolean offerFirst(E e)

参数: 此方法接受一个必需的参数 e ,表示要插入到Deque前面的元素。

返回值: 如果插入成功,则返回true,否则返回false。

异常: 该函数会抛出以下四种异常:

  • ClassCastException :将要插入的元素的类不能被添加到此容器中。
  • IllegalArgumentException :元素的某些属性阻止其被添加到Deque中。
  • NullPointerException :要插入的元素为 null,而Deque的接口不允许 null 元素。

下面的程序说明了Deque的offerFirst()方法:

程序 1:

//Java程序演示当Null被传递时,Deque的offerFirst()方法
import java.util.*;
import java.util.concurrent.LinkedBlockingDeque;

public class GFG {
    public static void main(String[] args)
        throws IllegalStateException
    {

        // create object of Deque
        Deque<Integer> DQ
            = new LinkedBlockingDeque<Integer>(3);

        if (DQ.offerFirst(10))
            System.out.println("Deque 未满,已插入 10");
        else
            System.out.println("Deque 已满");

        if (DQ.offerFirst(15))
            System.out.println("Deque 未满,已插入 15");
        else
            System.out.println("Deque 已满");

        if (DQ.offerFirst(25))
            System.out.println("Deque 未满,已插入 25");
        else
            System.out.println("Deque 已满");

        if (DQ.offerFirst(20))
            System.out.println("Deque 未满,已插入 20");
        else
            System.out.println("Deque 已满");

        // 在移除之前打印 Deque
        System.out.println("Deque: " + DQ);
    }
}
输出结果:
Deque 未满,已插入 10
Deque 未满,已插入 15
Deque 未满,已插入 25
Deque 已满
Deque: [25, 15, 10]

程序 2:

//Java程序演示当Null被传递时,Deque的offerFirst()方法
import java.util.*;
import java.util.concurrent.LinkedBlockingDeque;

public class GFG {
    public static void main(String[] args)
        throws NullPointerException
    {

        // create object of Deque
        Deque<Integer> DQ
            = new LinkedBlockingDeque<Integer>();

        // 在Deque的末尾添加数字
        DQ.offerFirst(7855642);
        DQ.offerFirst(35658786);
        DQ.offerFirst(5278367);

        // 插入 null 值
        DQ.offerFirst(null);

        // 在移除之前打印 Deque
        System.out.println("Deque: " + DQ);
    }
}

输出结果:

线程"main"中的异常java.lang.NullPointerException
    在java.util.concurrent.LinkedBlockingDeque.offerFirst(LinkedBlockingDeque.java:342)中
    在GFG.java中,第21行。

说明: 另外两个异常是内部异常,取决于编译器的原因,因此无法在代码中显示。

参考资料: https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html#offerFirst-E-

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程