Enqueue y Dequeue en Java
Antes de entrar en los conceptos de enqueue
y dequeue
en Java, desarrollemos una comprensión básica de todo el concepto de Cola. ¿Qué es realmente? El ejemplo del mundo real y mucho más. Vamos a sumergirnos.
Cola
La cola en términos de programación es una estructura lineal con un orden unidireccional a través del cual se realiza este tipo de datos. El orden unidireccional es FIFO (first in, first out). Un ejemplo del mundo real sería la fila de personas (cola) que ves fuera de un banco. Quien entra primero, recibe primero y sale. Entonces, cuando decimos enqueue
y dequeue
en programación, nos referimos a agregar y eliminar un elemento, respectivamente. Eche un vistazo a la imagen de abajo.
Como puede ver, la adición (enqueue
) en la cola siempre será desde atrás, y la eliminación (dequeue) siempre será desde el frente. Ahora que tiene una comprensión concreta de la cola, echemos un vistazo a la implementación de la cola en Java.
Cola en Java
En Java, la cola se considera una interfaz implementada por una lista enlazada. El siguiente ejemplo de código muestra cómo se puede crear el objeto de la cola en Java.
import java.util.LinkedList; // Class Which implements queue list etc.
import java.util.Queue; //queue is an iterface
public class Main {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<>();
// to implement Queue
}
}
Debe agregar las clases de listas y colas vinculadas para implementar una en Java. (Ver en la parte superior del código). Al implementar la cola, usamos Linked List para este propósito. Ahora entendamos los métodos involucrados en agregar y eliminar un elemento de la cola.
Enqueue y Dequeue en Java
Como se mencionó anteriormente, el orden para este tipo de operaciones es FIFO. Entonces, agreguemos (enqueue
) algún valor en la cola que hicimos. Como la cola es una cadena, los siguientes valores serían suficientes.
import java.util.LinkedList; // Class Which implements queue list etc.
import java.util.Queue; //queue is an iterface
public class Main {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<>();
// to implement Queue
// Adding In Queue using `add()` method
queue.add("Bill Gates"); // enque
queue.add("Mark Mark Zuckerberg"); // enque
queue.add("Elon Musk"); // enquue
queue.add("Jeff Bezos");
queue.offer("Donald Trump"); // alternatice enque
System.out.println("Queue : " + queue); // queue print
}
}
En el ejemplo anterior, hemos agregado cuatro valores usando los siguientes dos métodos.
queue.add()
Como puede ver en el código, hemos agregado cuatro valores de cadena en la cola. Otra cosa que debe saber sobre este método es que arroja una excepción sin marcar. Por ejemplo, si su cola está restringida, el método add()
devolverá una excepción al agregar otro elemento mientras no haya espacio para él. Todo depende de la naturaleza de la cola. Obtenga más información sobre las colas en Java aquí.
queue.offer()
El método offer()
es una alternativa de add()
. Este método en particular no arroja excepciones. En cambio, da valores verdaderos y falsos. Agregamos el quinto elemento en la cola usando oferta()
en el ejemplo anterior. El resultado del programa anterior será el siguiente.
Queue : [ Bill Gates, Mark Zuckerberg, Elon Musk, Jeff Bezos, Donald Trump ]
Ahora que ha entendido cómo puede (enqueue
) agregar elementos en la cola. Veamos cómo puede eliminar un elemento de la cola.
queue.remove()
El método remove()
se utiliza para eliminar un elemento de la cola. Se operará al principio de la cola. Por ejemplo, si elimináramos un elemento de la cola anterior, el primer elemento en eliminar sería Bill Gates
. Eche un vistazo al siguiente código.
import java.util.LinkedList; // Class Which implements queue list etc.
import java.util.Queue; //queue is an iterface
public class Main {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<>();
// to implement Queue
// Adding In Queue using `add()` method
queue.add("Bill Gates"); // enque
queue.add("Mark Mark Zuckerberg"); // enque
queue.add("Elon Musk"); // enquue
queue.add("Jeff Bezos");
queue.offer("Donald Trump"); // alternatice enque
System.out.println("Queue : " + queue); // queue print
String name = queue.remove(); // Dequeue
System.out.println("Removed from queue : " + name);
System.out.println(queue);
name = queue.poll(); // altrenative deque method
System.out.println("Removed from queue : " + name);
System.out.println(queue);
}
}
Como puede ver en el ejemplo de código anterior, usamos el método remove()
para eliminar un elemento de la cola. Lanzará una excepción sin marcar si intenta eliminar un elemento de una cola vacía.
queue.poll()
El método alternativo de remove()
es poll()
que devuelve el valor NULL
al eliminar un elemento de una cola vacía. Eche un vistazo a la salida del código anterior.
Queue : [Bill Gates, Mark Mark Zuckerberg, Elon Musk, Jeff Bezos, Donald Trump]
Removed from queue : Bill Gates
[Mark Mark Zuckerberg, Elon Musk, Jeff Bezos, Donald Trump]
Removed from queue : Mark Mark Zuckerberg
[Elon Musk, Jeff Bezos, Donald Trump]
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn