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-