El método addFirst(E e) de Deque Interface inserta el elemento pasado en el parámetro al frente de Deque si hay espacio. Si Deque tiene una capacidad restringida y no queda espacio para la inserción, devuelve una IllegalStateException . La función devuelve verdadero en la inserción exitosa.
Sintaxis:
void addFirst(E e)
Parámetros: este método acepta un parámetro obligatorio e que es el elemento que se insertará al frente del Deque.
Devoluciones: este método devuelve verdadero en la inserción exitosa.
Excepciones: la función arroja cuatro excepciones que se describen a continuación:
- ClassCastException : cuando la clase del elemento a ingresar impide que se agregue a este contenedor.
- IllegalStateException : cuando la capacidad del contenedor está llena y se realiza la inserción.
- IllegalArgumentException : cuando alguna propiedad del elemento impide que se agregue al Deque.
- NullPointerException : cuando el elemento a insertar se pasa como nulo y la interfaz de Deque no permite elementos nulos.
Los siguientes programas ilustran el método addFirst() de Deque:
Programa 1: Con la ayuda de 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]
Programa 2: Con la ayuda de 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]
Programa 3: Con la ayuda de 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]
Programa 4: Con la ayuda de 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]
Los siguientes programas ilustran las excepciones lanzadas por el método addFirst() :
Programa 5: Para mostrar 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); } }
Producción:
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)
Programa 6: Para mostrar 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); } }
Producción:
Exception in thread "main" java.lang.IllegalStateException: Deque full at java.util.concurrent.LinkedBlockingDeque.addFirst(LinkedBlockingDeque.java:326) at GFG.main(GFG.java:21)
Nota: Las otras dos excepciones son internas y dependen del compilador, por lo que no se pueden mostrar en el compilador.
Referencia: https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html#addFirst-E-