El método push(E e) de LinkedBlockingDeque inserta un elemento en la pila representada por este deque. Inserta el elemento pasado en el parámetro al frente del Deque si hay espacio. Si LinkedBlockingDeque tiene una capacidad restringida y no queda espacio para la inserción, devuelve una excepción IllegalStateException . Esta función es similar a la de addFirst().
Sintaxis:
public void push(E e)
Parámetros: este método acepta un parámetro obligatorio e que es el elemento que se insertará al principio de LinkedBlockingDeque.
Devoluciones: Este método no devuelve nada.
Excepción:
- IllegalStateException : si el elemento no se puede agregar en este momento debido a restricciones de capacidad
- NullPointerException : si el elemento especificado es nulo
Los siguientes programas ilustran el método push() de LinkedBlockingDeque:
Programa 1:
// Java Program Demonstrate push() // method of LinkedBlockingDeque import java.util.concurrent.LinkedBlockingDeque; import java.util.*; public class GFG { public static void main(String[] args) throws IllegalStateException { // create object of LinkedBlockingDeque LinkedBlockingDeque<Integer> LBD = new LinkedBlockingDeque<Integer>(); // Add numbers to end of LinkedBlockingDeque LBD.push(7855642); LBD.push(35658786); LBD.push(5278367); LBD.push(74381793); // before removing print queue System.out.println("Linked Blocking Deque: " + LBD); } }
Linked Blocking Deque: [74381793, 5278367, 35658786, 7855642]
Programa 2:
// Java Program Demonstrate push() // method of LinkedBlockingDeque // when it is Full import java.util.concurrent.LinkedBlockingDeque; import java.util.*; public class GFG { public static void main(String[] args) throws IllegalStateException { // create object of LinkedBlockingDeque // size of list LinkedBlockingDeque<Integer> LBD = new LinkedBlockingDeque<Integer>(3); // Add numbers to end of LinkedBlockingDeque LBD.push(7855642); LBD.push(35658786); LBD.push(5278367); // it is full LBD.push(74381793); // before removing print queue System.out.println("Linked Blocking Deque: " + LBD); } }
Producción:
Exception in thread "main" java.lang.IllegalStateException: Deque full at java.util.concurrent.LinkedBlockingDeque.addFirst(LinkedBlockingDeque.java:326) at java.util.concurrent.LinkedBlockingDeque.push(LinkedBlockingDeque.java:770) at GFG.main(GFG.java:23)
Programa 3:
// Java Program Demonstrate push() // method of LinkedBlockingDeque // when null is inserted import java.util.concurrent.LinkedBlockingDeque; import java.util.*; public class GFG { public static void main(String[] args) throws IllegalStateException { // create object of LinkedBlockingDeque LinkedBlockingDeque<Integer> LBD = new LinkedBlockingDeque<Integer>(); // Add numbers to end of LinkedBlockingDeque LBD.push(7855642); LBD.push(35658786); LBD.push(5278367); // NULL LBD.push(null); // before removing print queue System.out.println("Linked Blocking Deque: " + LBD); } }
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 java.util.concurrent.LinkedBlockingDeque.push(LinkedBlockingDeque.java:770) at GFG.main(GFG.java:23)
Referencia: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/LinkedBlockingDeque.html#push(E)