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); } }
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); } }
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