java queue queue methods
En este tutorial, analizaremos qué es una cola en Java, cómo usarla, ejemplo de cola de Java, métodos de cola de Java e implementación de la interfaz de cola:
Una cola es una estructura de datos lineal o una colección en Java que almacena elementos en un orden FIFO (primero en entrar, primero en salir).
La colección de la cola tiene dos extremos, es decir, delantero y trasero. Los elementos se agregan en la parte trasera y se eliminan por la parte delantera.
cómo ver archivos bin en android
=> Visite aquí para ver la serie de formación Java para todos.
Lo que vas a aprender:
¿Qué es una cola de Java?
Una estructura de datos de cola se representa como se muestra a continuación:
Como se muestra en el diagrama anterior, una cola es una estructura que tiene dos puntos, es decir, inicio (delantero) y final (trasero). Los elementos se insertan en la cola en la parte trasera y se eliminan de la cola en la parte delantera.
En Java, Queue es una interfaz que forma parte del paquete java.util. La interfaz de cola amplía la interfaz de Colección Java.
La definición general de la interfaz de cola es:
|_+_|Como la Cola es una interfaz, no se puede crear una instancia. Necesitamos algunas clases concretas para implementar la funcionalidad de la interfaz de cola. Dos clases implementan la interfaz de cola, es decir, LinkedList y PriorityQueue.
A continuación se muestran algunas de las principales características de la estructura de datos de la cola:
- La cola sigue el orden FIFO (primero en entrar, primero en salir). Esto significa que el elemento se inserta en la cola al final y se elimina de la cola al principio.
- La interfaz de cola de Java proporciona todos los métodos de la interfaz de colección, como inserción, eliminación, etc.
- LinkedList y PriorityQueue son las clases que implementan la interfaz Queue. ArrayBlockingQueue es otra clase que implementa la interfaz Queue.
- Las colas que forman parte del paquete java.util se pueden clasificar como colas ilimitadas, mientras que las que están presentes en java.util.el paquete concurrente son colas limitadas.
- El Deque es una cola que admite la inserción y eliminación de ambos extremos.
- El deque es seguro para subprocesos.
- BlockingQueues son seguros para subprocesos y se utilizan para implementar problemas entre productores y consumidores.
- BlockingQueues no permite elementos nulos. Se lanza una NullPointerException si se intenta cualquier operación relacionada con valores nulos.
¿Cómo usar una cola en Java?
Para usar una cola en Java, primero debemos importar la interfaz de la cola de la siguiente manera:
|_+_|O
|_+_|Una vez que se importa esto, podemos crear una cola como se muestra a continuación:
|_+_|Como Queue es una interfaz, usamos una clase LinkedList que implementa la interfaz Queue para crear un objeto de cola.
Del mismo modo, podemos crear una cola con otras clases concretas.
|_+_|Ahora que se ha creado el objeto de cola, podemos inicializar el objeto de cola proporcionándole los valores a través del método de adición como se muestra a continuación.
|_+_|Ejemplo de cola de Java
|_+_|Producción:
El contenido de la cola: (uno, dos, tres, cuatro)
El ejemplo anterior muestra la declaración e inicialización de un objeto Queue. Luego, simplemente imprimimos el contenido de la cola.
Métodos de cola en Java
En esta sección, discutiremos los métodos de API para la cola. La interfaz de cola admite varias operaciones como insertar, eliminar, mirar, etc. Algunas operaciones generan una excepción, mientras que otras devuelven un valor específico cuando el método tiene éxito o falla.
Tenga en cuenta que no hay cambios específicos en la colección Queue en Java 8. Los siguientes métodos también están disponibles en versiones posteriores de Java como Java 9, etc.
La siguiente tabla resume todos estos métodos.
Método | Prototipo de método | Descripción |
---|---|---|
Talla | int tamaño () | Devuelve el tamaño o la cantidad de elementos en la cola. |
agregar | suma booleana (E e) | Agrega el elemento e a la cola al final (cola) de la cola sin violar las restricciones sobre la capacidad. Devuelve verdadero si tiene éxito o IllegalStateException si la capacidad está agotada. |
ojeada | E mirar () | Devuelve el encabezado (frontal) de la cola sin eliminarlo. |
elemento | Elemento E () | Realiza la misma operación que el método peek (). Lanza NoSuchElementException cuando la cola está vacía. |
retirar | E eliminar () | Elimina el encabezado de la cola y lo devuelve. Lanza NoSuchElementException si la cola está vacía. |
encuesta | Encuesta E () | Elimina el encabezado de la cola y lo devuelve. Si la cola está vacía, devuelve nulo. |
Oferta | oferta booleana (E e) | Inserte el nuevo elemento e en la cola sin violar las restricciones de capacidad. |
Iterando los elementos de la cola
Podemos atravesar los elementos de la cola usando el bucle forEach o usando un iterador. El programa que se muestra a continuación implementa ambos enfoques para atravesar la cola.
|_+_|Producción:
Los elementos de la cola a través del iterador:
Valor-0 Valor-1 Valor-2 Valor-3
Los elementos de la cola que usan el bucle for:
Valor-0 Valor-1 Valor-2 Valor-3
Implementación de cola de Java
El programa a continuación demuestra los métodos que discutimos anteriormente.
|_+_|Producción:
Elementos en cola: (10, 20, 30, 40, 50)
Elemento eliminado de la cola: 10
Cabeza de cola: 20
Encuesta (): Jefe de cola devuelto: 20
peek (): Jefe de la cola: 30
Final Queue:(30, 40, 50)
Implementación de matriz de cola de Java
La implementación de la cola no es tan sencilla como la implementación de la pila. En primer lugar, la cola contiene dos punteros, trasero y delantero. Además, se realizan diferentes operaciones en dos extremos diferentes.
Para implementar la cola usando matrices, primero declaramos una matriz que contendrá n número de elementos de la cola.
Luego definimos las siguientes operaciones a realizar en esta cola.
# 1) Poner en cola: Una operación para insertar un elemento en la cola es Enqueue (función queueEnqueue en el programa). Para insertar un elemento en la parte posterior, primero debemos verificar si la cola está llena. Si está lleno, no podemos insertar el elemento. Si trasero # 2) Dequeue: La operación para eliminar un elemento de la cola es Dequeue (función queueDequeue en el programa). Primero, verificamos si la cola está vacía. Para que la operación de sacar de cola funcione, debe haber al menos un elemento en la cola. # 3) Frente: Este método devuelve el principio de la cola. # 4) Pantalla: Este método atraviesa la cola y muestra los elementos de la cola. El siguiente programa Java demuestra la implementación Array de Queue. Producción: Cola inicial: Como hemos implementado la estructura de datos Queue usando Arrays en el programa anterior, también podemos implementar la Queue usando Linked List. Implementaremos los mismos métodos enqueue, dequeue, front y display en este programa. La diferencia es que usaremos la estructura de datos Linked List en lugar de Array. El siguiente programa demuestra la implementación de la lista vinculada de Queue en Java. Producción: Elemento 6 agregado a la cola BlockingQueue es una interfaz agregada en Java 1.5 y es parte del java.util.concurrent paquete. Esta interfaz introduce el bloqueo en caso de que BlockingQueue esté lleno o vacío. Por lo tanto, cuando un subproceso accede a la cola e intenta insertar (poner en cola) elementos en una cola que ya está llena, se bloquea hasta que otro subproceso crea un espacio en la cola (tal vez mediante la operación de quitar la cola o borrar la cola). De manera similar, en el caso de quitar la cola, la operación se bloquea si la cola está vacía hasta que el elemento esté disponible para la operación de quitar la cola. Los métodos BlockingQueue utilizan alguna forma de control de concurrencia como bloqueos internos y son atómicos. BlockingQueue es una cola simultánea que administra las operaciones de la cola de forma simultánea. El BlockingQueue se muestra a continuación: Tenga en cuenta que BlockingQueue no acepta valores nulos. Un intento de insertar un valor nulo en la cola da como resultado NullPointerException. Algunas de las implementaciones de BlockingQueue proporcionadas en Java son LinkedBlockingQueue, PriorityBlockingQueue, ArrayBlockingQueue y SynchonousQueue. Todas estas implementaciones son seguras para subprocesos. BlockingQueues son de dos tipos: En la cola limitada, la capacidad de la cola se pasa al constructor de la cola. La declaración de la cola es la siguiente: BlockingQueue blockQueue = nuevo LinkedBlockingDeque (5); En la cola ilimitada, no establecemos la capacidad de la cola de forma explícita y puede aumentar de tamaño. La capacidad se establece en Integer.MAX_VALUE. La declaración de la cola ilimitada es la siguiente: BlockingQueue blockQueue = nuevo LinkedBlockingDeque (); La interfaz BlockingQueue se utiliza principalmente para problemas de tipo productor-consumidor en los que el productor produce los recursos y el consumidor consume los recursos. P # 1) ¿Qué es una cola en Java? Responder: La cola en Java es una estructura de datos ordenada lineal que sigue el orden de elementos FIFO (primero en entrar, primero en salir). Esto significa que el elemento insertado primero en la cola será el primer elemento en ser eliminado. En Java, la cola se implementa como una interfaz que hereda la interfaz Colección. Q #2) ¿Es Java seguro para subprocesos en cola? Responder: No todas las colas son seguras para subprocesos, pero BlockingQueues en Java son seguras para subprocesos. Q #3) ¿Qué es más rápido: apilar o poner en cola? Responder: La pila es más rápida. En la pila, los elementos se procesan desde un solo extremo, por lo que no se requiere desplazamiento. Pero en la cola, los elementos deben cambiarse y ajustarse, ya que hay dos punteros diferentes para insertar y eliminar elementos. Q #4) ¿Cuáles son los tipos de cola? Respuesta: Las colas son de los siguientes tipos: Q #5) ¿Por qué se utiliza la cola? Responder: La estructura de datos de la cola se utiliza con fines de sincronización. La cola también se utiliza para la programación del disco y la CPU. En este tutorial, hemos discutido las colas simples junto con sus detalles como declaraciones, implementación de inicialización y métodos. También aprendimos sobre la implementación de Array y LinkedList de Queue en Java. En nuestros próximos tutoriales, analizaremos más tipos de colas en detalle. => Consulte TODOS los tutoriales de Java aquí.
La cola está vacía
Cola después de la operación Enqueue:
10 = 30 = 50 = 70 =
Elemento frontal de la cola: 10
La cola está llena
10 = 30 = 50 = 70 =
Cola después de dos operaciones de sacar de cola: 50 = 70 =
Elemento frontal de la cola: 50Implementación de lista enlazada de cola de Java
Elemento 3 agregado a la cola
Parte delantera de la cola: 6 Parte trasera de la cola: 3
Elemento 12 agregado a la cola
Elemento 24 agregado a la cola
Elemento 6 eliminado de la cola
Elemento 3 eliminado de la cola
Elemento 9 agregado a la cola
Parte delantera de la cola: 12 Parte trasera de la cola: 9BlockingQueue en Java
Bloqueo de tipos de cola
Cola limitada
cómo ejecutar un archivo jar con java
Cola ilimitada
Preguntas frecuentes
Conclusión
Lectura recomendada