En este tutorial, aprenderemos sobre la interfaz de Java Queue y sus métodos.

La
Queue
interfaz del marco de colecciones de Java proporciona la funcionalidad de la estructura de datos de la cola. Extiende la Collection
interfaz.Clases que implementan cola
Como
Queue
es una interfaz, no podemos proporcionar la implementación directa de la misma.
Para usar las funcionalidades de
Queue
, necesitamos usar clases que lo implementen:- ArrayDeque
- Lista enlazada
- PriorityQueue

Interfaces que extienden la cola
La
Queue
interfaz también se extiende por varias subinterfaces:Deque
BlockingQueue
BlockingDeque

Funcionamiento de la estructura de datos de cola
En las colas, los elementos se almacenan y se accede a ellos de manera Primero en entrar, Primero en salir . Es decir, los elementos se agregan desde atrás y se eliminan desde el frente .

¿Cómo usar la cola?
En Java, debemos importar el
java.util.Queue
paquete para poder usarlo Queue
.
// LinkedList implementation of Queue
Queue<String> animal1 = new LinkedList<>();
// Array implementation of Queue
Queue<String> animal2 = new ArrayDeque<>();
// Priority Queue implementation of Queue
Queue<String> animal 3 = new PriorityQueue<>();
Aquí, hemos creado objetos animal1 , animal2 y animal3 de clases
LinkedList
, ArrayDeque
y PriorityQueue
respectivamente. Estos objetos pueden usar las funcionalidades de la Queue
interfaz.Métodos de cola
La
Queue
interfaz incluye todos los métodos de la Collection
interfaz. Es porque Collection
es la superinterfaz de Queue
.
Algunos de los métodos comúnmente utilizados de la
Queue
interfaz son:- add () : inserta el elemento especificado en la cola. Si la tarea es exitosa,
add()
regresatrue
, si no arroja una excepción. - offer () : inserta el elemento especificado en la cola. Si la tarea es exitosa,
offer()
regresatrue
, si no regresafalse
. - element () : devuelve el encabezado de la cola. Lanza una excepción si la cola está vacía.
- peek () - Devuelve el encabezado de la cola. Devuelve
null
si la cola está vacía. - remove () : devuelve y elimina el encabezado de la cola. Lanza una excepción si la cola está vacía.
- poll () - Devuelve y elimina el encabezado de la cola. Devuelve
null
si la cola está vacía.
Implementación de la interfaz de cola
1. Implementando la clase LinkedList
import java.util.Queue;
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
// Creating Queue using the LinkedList class
Queue<Integer> numbers = new LinkedList<>();
// offer elements to the Queue
numbers.offer(1);
numbers.offer(2);
numbers.offer(3);
System.out.println("Queue: " + numbers);
// Access elements of the Queue
int accessedNumber = numbers.peek();
System.out.println("Accessed Element: " + accessedNumber);
// Remove elements from the Queue
int removedNumber = numbers.poll();
System.out.println("Removed Element: " + removedNumber);
System.out.println("Updated Queue: " + numbers);
}
}
Salida
Cola: [1, 2, 3] Elemento al que se accede: 1 Elemento eliminado: 1 Cola actualizada: [2, 3]
Para obtener más información
LinkedList
, visite Java LinkedList .
2. Implementación de la clase PriorityQueue
import java.util.Queue;
import java.util.PriorityQueue;
class Main {
public static void main(String[] args) {
// Creating Queue using the PriorityQueue class
Queue<Integer> numbers = new PriorityQueue<>();
// offer elements to the Queue
numbers.offer(5);
numbers.offer(1);
numbers.offer(2);
System.out.println("Queue: " + numbers);
// Access elements of the Queue
int accessedNumber = numbers.peek();
System.out.println("Accessed Element: " + accessedNumber);
// Remove elements from the Queue
int removedNumber = numbers.poll();
System.out.println("Removed Element: " + removedNumber);
System.out.println("Updated Queue: " + numbers);
}
}
Salida
Cola: [1, 5, 2] Elemento al que se accede: 1 Elemento eliminado: 1 Cola actualizada: [2, 5]
Para obtener más información
PriorityQueue
, visite Java PriorityQueue .
En los próximos tutoriales, aprenderemos sobre las diferentes subinterfaces de la
Queue
interfaz y su implementación en detalle.
0 Comentarios
Dejanos tu comentario para seguir mejorando!