当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Deque addFirst()用法及代码示例


如果有空间,则Deque接口的addFirst(E e)方法会将参数中传递的元素插入到Deque的前面。如果Deque受容量限制并且没有剩余空间可插入,则它将返回IllegalStateException。成功插入后,该函数返回true。

用法:

void addFirst(E e)

参数:此方法接受强制性参数e,该参数是要插入到双端队列的前面的元素。

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

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



  • ClassCastException:当要输入的元素的类阻止将其添加到此容器中时:
  • IllegalStateException:当容器的容量已满并且已插入时。
  • IllegalArgumentException:当元素的某些属性阻止将其添加到双端队列时。
  • NullPointerException :当要插入的元素作为null传递并且Deque的接口不允许使用null元素时:

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

程序1:借助LinkedList。

// Java Program Demonstrate addFirst() 
// 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.addFirst(7855642); 
        DQ.addFirst(35658786); 
        DQ.addFirst(5278367); 
        DQ.addFirst(74381793); 
  
        // print Deque 
        System.out.println("Deque:" + DQ); 
    } 
}
输出:
Deque:[74381793, 5278367, 35658786, 7855642]

程序2:借助ArrayDeque。

// Java Program Demonstrate addFirst() 
// 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.addFirst(7855642); 
        DQ.addFirst(35658786); 
        DQ.addFirst(5278367); 
        DQ.addFirst(74381793); 
  
        // print Deque 
        System.out.println("Deque:" + DQ); 
    } 
}
输出:
Deque:[74381793, 5278367, 35658786, 7855642]

程序3:借助ConcurrentLinkedDeque。

// Java Program Demonstrate addFirst() 
// 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.addFirst(7855642); 
        DQ.addFirst(35658786); 
        DQ.addFirst(5278367); 
        DQ.addFirst(74381793); 
  
        // print Deque 
        System.out.println("Deque:" + DQ); 
    } 
}
输出:
Deque:[74381793, 5278367, 35658786, 7855642]

程序4:借助LinkedBlockingDeque。



// Java Program Demonstrate addFirst() 
// 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.addFirst(7855642); 
        DQ.addFirst(35658786); 
        DQ.addFirst(5278367); 
        DQ.addFirst(74381793); 
  
        // print Deque 
        System.out.println("Deque:" + DQ); 
    } 
}
输出:
Deque:[74381793, 5278367, 35658786, 7855642]

以下示例程序旨在说明addFirst()方法引发的异常:

程序5:显示NullPointerException。

/// Java Program Demonstrate addFirst() 
// 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.addFirst(7855642); 
        DQ.addFirst(35658786); 
        DQ.addFirst(5278367); 
        // when null is inserted 
        DQ.addFirst(null); 
  
        // before removing print DeQue 
        System.out.println("DeQue:" + DQ); 
    } 
}

输出:

Exception in thread "main" java.lang.NullPointerException
    at java.util.concurrent.LinkedBlockingDeque.offerFirst(LinkedBlockingDeque.java:342)
    at java.util.concurrent.LinkedBlockingDeque.addFirst(LinkedBlockingDeque.java:325)
    at GFG.main(GFG.java:20)

程序6:显示IllegalStateException。

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

输出:

Exception in thread "main" java.lang.IllegalStateException:Deque full
    at java.util.concurrent.LinkedBlockingDeque.addFirst(LinkedBlockingDeque.java:326)
    at GFG.main(GFG.java:21)

注意:其他两个异常是内部的,它们是由编译器引起的,因此无法在编译器中显示。

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

相关用法


注:本文由纯净天空筛选整理自gopaldave大神的英文原创作品 Deque addFirst() method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。