Diferencia entre ArrayBlockingQueue y ArrayDeque

BlockingQueue (primero en entrar, primero en salir)

Java

// Java program to demonstrate ArrayBlockingQueue
  
import java.util.concurrent.ArrayBlockingQueue;
  
public class ArrayBlockingQueueDemo {
  
    public static void main(String[] args)
    {
        // define capacity of ArrayBlockingQueue
        int capacity = 15;
  
        // create object of ArrayBlockingQueue
        // using ArrayBlockingQueue constructor
        ArrayBlockingQueue<Integer> abq
            = new ArrayBlockingQueue<Integer>(capacity);
  
        // add numbers
        abq.add(1);
        abq.add(2);
        abq.add(3);
  
        // print queue
        System.out.println("ArrayBlockingQueue:" + abq);
    }
}
Producción

ArrayBlockingQueue:[1, 2, 3]

Array Double Ended Queue Array Deck

características importantes

  • ArrayDeque no tiene restricciones de capacidad y crecen según sea necesario para admitir el uso.
  • No son seguros para subprocesos, lo que significa que, en ausencia de sincronización externa, ArrayDeque no admite el acceso simultáneo de varios subprocesos.
  • Los elementos nulos están prohibidos en ArrayDeque.
  • Es probable que la clase ArrayDeque sea más rápida que Stack cuando se usa como una pila.
  • Es probable que la clase ArrayDeque sea más rápida que LinkedList cuando se usa como una cola.

Implementación de ArrayDeque:

Java

// Java program to demonstrate ArrayDeque
  
import java.util.*;
  
public class ArrayDequeDemo {
  
    public static void main(String[] args)
    {
  
        // Initializing an deque
        Deque<Integer> de_que = new ArrayDeque<Integer>(10);
  
        // add numbers
        de_que.add(10);
        de_que.add(20);
        de_que.add(30);
  
        // print queue
        System.out.println("ArrayDeque:" + de_que);
    }
}
Producción

ArrayDeque:[10, 20, 30]

Diferencia entre ArrayBlockingQueue y ArrayDeque:

S. NO.                           ArrayBlockingQueue                  ArrayDeque
1.

ArrayBlockingQueue implementa la interfaz BlockingQueue.

ArrayDeque implementa la interfaz Deque.

2.

Es una cola de array de tamaño fijo. Por lo tanto, no podemos aumentar y reducir el tamaño de una array una vez que la creamos.

Es una cola de array de tamaño variable. Por lo tanto, podemos aumentar y reducir el tamaño de la array.

3.

Capaz de agregar o eliminar los elementos de un solo lado de la cola.

Capaz de agregar o eliminar los elementos de ambos lados de la cola.

4. 

ArrayBlockingQueue es seguro para subprocesos.

ArrayDeque no es seguro para subprocesos.

5.

La clase ArrayBlockingQueue no es más rápida que la clase ArrayDeque.

La clase ArrayDeque es más rápida que la clase ArrayBlockingQueue.

Publicación traducida automáticamente

Artículo escrito por prashant_srivastava 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 *