Método ArrayBlockingQueue add() en Java

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *