ArrayBlockingQueue es una cola de bloqueo limitada que almacena los elementos respaldados internamente por una array.
- La clase ArrayBlockingQueue es miembro de Java Collections Framework.
- Acotado significa que tendrá un tamaño fijo, no puede almacenar el número de elementos más que la capacidad de la cola.
- La cola también sigue la regla FIFO (primero en entrar, primero en salir) para almacenar y eliminar elementos de la cola.
- Si intenta colocar un elemento en una cola llena o tomar un elemento de una cola vacía, la cola lo bloqueará.
El método add (E e) inserta el elemento pasado como parámetro al método al final de esta cola . Si agregar el elemento excede la capacidad de la cola, el método generará una IllegalStateException. Este método devuelve verdadero si la adición del elemento es exitosa; de lo contrario, arrojará una IllegalStateException.
Sintaxis:
public boolean add(E e)
Parámetro:
e – el elemento que se agregará a la cola.
Valor devuelto:
verdadero si la adición se realiza correctamente.
Lanza:
IllegalStateException: si esta cola está llena
. NullPointerException: si el elemento especificado es nulo.
Ejemplo 1
El siguiente programa ilustra la adición de un elemento a ArrayBlockingQueue.
// Java Program to Demonstrate add(E e) method // of ArrayBlockingQueue. import java.util.ArrayList; import java.util.concurrent.ArrayBlockingQueue; public class GFG { public static void main(String[] args) { // define capacity of ArrayBlockingQueue int capacity = 10; // create object of ArrayBlockingQueue ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(capacity); // Add element to ArrayBlockingQueue queue.add(23); // print queue after add operation System.out.println("After adding 23"); System.out.println(queue); // add more numbers queue.add(32); queue.add(45); queue.add(12); // print queue after add operation System.out.println("After adding 32, 45, 12"); System.out.println(queue); // add more numbers queue.add(27); queue.add(67); // print queue after add operation System.out.println("After adding 27, 67"); System.out.println(queue); } }
Output : After adding 23 [23] After adding 32, 45, 12 [23, 32, 45, 12] After adding 27, 67 [23, 32, 45, 12, 27, 67]
Ejemplo 2
El siguiente programa ilustra la adición de Element a ArrayBlockingQueue y la excepción lanzada si la cola está llena.
// Java Program to Demonstrate add(E e) method // of ArrayBlockingQueue. import java.util.ArrayList; import java.util.concurrent.ArrayBlockingQueue; public class GFG { public static void main(String[] args) { // define capacity of ArrayBlockingQueue to 5 elements int capacity = 5; // create object of ArrayBlockingQueue ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(capacity); // Add 5 element to ArrayBlockingQueue queue.add(23); queue.add(32); queue.add(45); queue.add(12); queue.add(27); // print queue after add operation System.out.println("After adding all 5 elements to queue"); System.out.println(queue); // check whether queue is full or not. if (queue.remainingCapacity() == 0) { System.out.println("Queue is full"); } else { System.out.println("Queue is not full"); } // try to add more elements // If exception thrown print the exception. try { Boolean response = queue.add(27); } catch (Exception e) { e.printStackTrace(); } } }
Output : After adding all 5 elements to queue [23, 32, 45, 12, 27] Queue is full java.lang.IllegalStateException: Queue full at java.util.AbstractQueue.add(Unknown Source) at java.util.concurrent.ArrayBlockingQueue.add(Unknown Source) at defaultpackage.GFG.main(GFG.java:38)
Referencia:
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ArrayBlockingQueue.html#add(E)
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA