Java中的Deque addLast()方法

Java中的Deque addLast()方法

Deque接口的 addLast(E e) 方法会在参数传递的元素插入到Deque的末尾,如果有空间的话。如果Deque受到容量限制,不再有空间插入,则会返回IllegalStateException。函数执行插入成功时,返回值为true。

语法:

boolean addLast(E e)

参数: 该方法接收一个必填参数 e ,它是要插入Deque末尾的元素。

返回值: 如果插入成功,则此方法返回true。

异常: 该函数引发四个异常,如下所述:

  • ClassCastException :当要插入的元素的类阻止被添加到这个容器时。
  • IllegalStateException :当容器的容量已满并进行插入时。
  • IllegalArgumentException :当要添加到Deque的元素的某些属性防止其添加时。
  • NullPointerException :当要插入的元素传递为null并且Deque的接口不允许为null的元素。

以下程序说明了通过实现Deque接口的各种类来实现addLast()方法:

程序1: 使用 LinkedList

// Java程序展示addLast()
// Deque方法
  
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
        throws IllegalStateException
    {
  
        // 创建De1ue对象
        Deque<Integer> DQ
            = new LinkedList<Integer>();
  
        // 将数字添加到Deque末尾
        DQ.addLast(7855642);
        DQ.addLast(35658786);
        DQ.addLast(5278367);
        DQ.addLast(74381793);
  
        // 在移除之前打印Deque
        System.out.println("Deque:" + DQ);
    }
}
Deque: [7855642, 35658786, 5278367, 74381793]

程序2: 使用 LinkedBlockingDeque

// Java程序展示addLast()
// Deque方法
  
import java.util.*;
import java.util.concurrent.LinkedBlockingDeque;
  
public class GFG {
    public static void main(String[] args)
        throws IllegalStateException
    {
  
        // 创建De1ue对象
        Deque<Integer> DQ
            = new LinkedBlockingDeque<Integer>();
  
        // 将数字添加到Deque末尾
        DQ.addLast(7855642);
        DQ.addLast(35658786);
        DQ.addLast(5278367);
        DQ.addLast(74381793);
  
        // 在移除之前打印Deque
        System.out.println("Deque:" + DQ);
    }
}
Deque: [7855642, 35658786, 5278367, 74381793]

程序3: 使用 ArrayDeque

// Java程序演示Deque的addLast()方法
 
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
        throws IllegalStateException
    {

        //创建Deque对象
        Deque DQ
            = new ArrayDeque();

        //向Deque末尾添加数字
        DQ.addLast(7855642);
        DQ.addLast(35658786);
        DQ.addLast(5278367);
        DQ.addLast(74381793);

        //删除前打印Deque
        System.out.println("Deque: " + DQ);
    }
}
Deque: [7855642, 35658786, 5278367, 74381793]

Program 4: 使用ConcurrentLinkedDeque。

// Java程序演示Deque的addLast()方法
import java.util.*;
import java.util.concurrent.ConcurrentLinkedDeque;

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

        //创建Deque对象
        Deque DQ
            = new ConcurrentLinkedDeque();

        //向Deque末尾添加数字
        DQ.addLast(7855642);
        DQ.addLast(35658786);
        DQ.addLast(5278367);
        DQ.addLast(74381793);

        //删除前打印Deque
        System.out.println("Deque: " + DQ);
    }
}
Deque: [7855642, 35658786, 5278367, 74381793]

下面的程序说明了addLast()方法抛出的异常:

程序5: 展示NullPointerException。

// Java程序演示当传递空值时Deque的addLast()方法
import java.util.*;
import java.util.concurrent.LinkedBlockingDeque;

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

        //创建Deque对象
        Deque DQ
            = new LinkedBlockingDeque();

        //向Deque末尾添加数字
        DQ.addLast(7855642);
        DQ.addLast(35658786);
        DQ.addLast(5278367);

        try {
            //插入null时
            DQ.addLast(null);
        }
        catch (Exception e) {
            System.out.println(
                "插入null时抛出异常:"
                + e);
        }
    }
}
当插入null时抛出异常:java.lang.NullPointerException

程序6: 展示IllegalStateException。

// Java程序演示当Deque容量已满时addLast()方法抛出的异常
import java.util.*;
import java.util.concurrent.LinkedBlockingDeque;

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

        //创建Deque对象
        Deque DQ
            = new LinkedBlockingDeque(3);

        //向Deque末尾添加数字
        DQ.addLast(7855642);
        DQ.addLast(35658786);
        DQ.addLast(5278367);

        try {
            //当Deque容量已满时
            DQ.addLast(10);
        }
        catch (Exception e) {
            System.out.println(
                "当Deque容量已满时插入元素抛出的异常: " + e);
        }
    }
}

插入元素时,当双端队列已满时抛出异常:java.lang.IllegalStateException: Deque full

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

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程