當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Deque add()用法及代碼示例


如果有空間,則雙端隊列接口的add(E e)方法會將參數中傳遞的元素插入到雙端隊列的末尾。如果Deque受容量限製並且沒有剩餘空間可插入,則它將返回IllegalStateException。成功插入後,該函數返回true。

用法:

boolean add(E e)

參數:此方法接受強製性參數e,該參數是要在雙端隊列的末尾插入的元素。

返回:成功插入後,此方法返回true。

異常:該函數引發四個異常,如下所述:



  • ClassCastException:當要輸入的元素的類阻止將其添加到此容器中時:
  • IllegalStateException:當容器的容量已滿並且已插入時。
  • IllegalArgumentException:當元素的某些屬性阻止將其添加到雙端隊列時。
  • NullPointerException :當要插入的元素作為null傳遞並且Deque的接口不允許使用null元素時:

以下示例程序旨在說明Deque的add()方法:

程序1:借助LinkedList。

Java

// Java Program Demonstrate add()
// method of Deque
import java.util.*;
 
public class GFG {
    public static void main(String[] args)
        throws IllegalStateException
    {
 
        // create object of De1ue
        Deque<Integer> DQ
            = new LinkedList<Integer>();
 
        // Add numbers to end of Deque
        DQ.add(7855642);
        DQ.add(35658786);
        DQ.add(5278367);
        DQ.add(74381793);
 
        // before removing print Deque
        System.out.println("Deque:" + DQ);
    }
}
輸出:
Deque:[7855642, 35658786, 5278367, 74381793]




程序2:借助ArrayDeque。

Java

// Java Program Demonstrate add()
// method of Deque
import java.util.*;
 
public class GFG {
    public static void main(String[] args)
        throws IllegalStateException
    {
 
        // create object of De1ue
        Deque<Integer> DQ
            = new ArrayDeque<Integer>();
 
        // Add numbers to end of Deque
        DQ.add(7855642);
        DQ.add(35658786);
        DQ.add(5278367);
        DQ.add(74381793);
 
        // before removing print Deque
        System.out.println("Deque:" + DQ);
    }
}
輸出:
Deque:[7855642, 35658786, 5278367, 74381793]




程序3:借助ConcurrentLinkedDeque。

Java

// Java Program Demonstrate add()
// method of Deque
import java.util.*;
import java.util.concurrent.ConcurrentLinkedDeque;
 
public class GFG {
    public static void main(String[] args)
        throws IllegalStateException
    {
 
        // create object of De1ue
        Deque<Integer> DQ
            = new ConcurrentLinkedDeque<Integer>();
 
        // Add numbers to end of Deque
        DQ.add(7855642);
        DQ.add(35658786);
        DQ.add(5278367);
        DQ.add(74381793);
 
        // before removing print Deque
        System.out.println("Deque:" + DQ);
    }
}
輸出:
Deque:[7855642, 35658786, 5278367, 74381793]




程序4:借助LinkedBlockingDeque。



Java

// Java Program Demonstrate add()
// method of Deque
import java.util.*;
import java.util.concurrent.LinkedBlockingDeque;
 
public class GFG {
    public static void main(String[] args)
        throws IllegalStateException
    {
 
        // create object of De1ue
        Deque<Integer> DQ
            = new LinkedBlockingDeque<Integer>();
 
        // Add numbers to end of Deque
        DQ.add(7855642);
        DQ.add(35658786);
        DQ.add(5278367);
        DQ.add(74381793);
 
        // before removing print Deque
        System.out.println("Deque:" + DQ);
    }
}
輸出:
Deque:[7855642, 35658786, 5278367, 74381793]




以下示例程序旨在說明add()方法引發的異常:

程序5:顯示NullPointerException。

Java

/// Java Program Demonstrate add()
// method of DeQue when Null is passed
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>();
 
        // Add numbers to end of DeQue
        DQ.add(7855642);
        DQ.add(35658786);
        DQ.add(5278367);
        // when null is inserted
        DQ.add(null);
 
        // before removing print DeQue
        System.out.println("DeQue:" + DQ);
    }
}

輸出:

Exception in thread "main" java.lang.NullPointerException
    at java.util.concurrent.LinkedBlockingDeque.offerLast(LinkedBlockingDeque.java:357)
    at java.util.concurrent.LinkedBlockingDeque.addLast(LinkedBlockingDeque.java:334)
    at java.util.concurrent.LinkedBlockingDeque.add(LinkedBlockingDeque.java:633)
    at GFG.main(GFG.java:20)

程序6:顯示IllegalStateException。

Java

// Java Program Demonstrate add()
// method of Deque when capacity is full
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);
 
        // Add numbers to end of Deque
        DQ.add(7855642);
        DQ.add(35658786);
        DQ.add(5278367);
 
        // when capacity is full
        DQ.add(10);
 
        // before removing print Deque
        System.out.println("Deque:" + DQ);
    }
}

輸出:

Exception in thread "main" java.lang.IllegalStateException:Deque full
    at java.util.concurrent.LinkedBlockingDeque.addLast(LinkedBlockingDeque.java:335)
    at java.util.concurrent.LinkedBlockingDeque.add(LinkedBlockingDeque.java:633)
    at GFG.main(GFG.java:21)

注意:其他兩個異常是內部的,它們是由編譯器引起的,因此無法在編譯器中顯示。

參考: https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html#add-E-

相關用法


注:本文由純淨天空篩選整理自gopaldave大神的英文原創作品 Deque add() method in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。