Enqueue y Dequeue en Java

Haider Ali 12 octubre 2023
  1. Cola
  2. Cola en Java
  3. Enqueue y Dequeue en Java
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.

enqueue y dequeue java

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]
Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

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

Artículo relacionado - Java Queue