Método PriorityQueue remove() en Java

Como todos sabemos, los elementos que ingresan a la cola de prioridad no se ordenan, pero como todos sabemos, al sacar elementos de la cola de prioridad, los elementos siempre se ordenan como un rasgo de la cola de prioridad. Aquí, el orden predeterminado de prioridad de elementos para tipos de datos se define de la siguiente manera:

  • Entero : elementos más pequeños que vienen primero (mientras se trata solo de números positivos)
  • String : orden alfabético

Nota: También podemos insertar un Comparador mientras creamos una instancia de esta clase que nos dice cómo se debe definir la prioridad.

Sintaxis:

PriorityQueue<String> = new PriorityQueue<String>(ComparatorHere);

Sintaxis: método de eliminación  

Priority_Queue.remove(Object O)

Parámetros: El parámetro O es del tipo PriorityQueue y especifica el elemento que se eliminará de PriorityQueue.

Valor de retorno: este método devuelve True si el elemento especificado está presente en la cola; de lo contrario, devuelve False.

Ejemplo 1

Java

// Java Program to Illustrate remove() Method
// in PriorityQueue
// Where Elements are of String Type
 
// Importing all utility classes
import java.util.*;
 
// Main class
// PriorityQueueDemo
public class GFG {
 
    // Main driver method
    public static void main(String args[])
    {
 
        // Creating an empty PriorityQueue
        // where elements are of string type
        PriorityQueue<String> queue
            = new PriorityQueue<String>();
 
        // Adding elements into the Queue
        // using add() method
        queue.add("Welcome");
        queue.add("To");
        queue.add("Geeks");
        queue.add("For");
        queue.add("Geeks");
 
        // Printing the elements of PriorityQueue
        System.out.println("Initial PriorityQueue: "
                           + queue);
 
        // Removing elements from PriorityQueue
        // using remove() method
        queue.remove("Geeks");
        queue.remove("For");
        queue.remove("Welcome");
 
        // Displaying the PriorityQueue
        // after removal of element
        System.out.println("PriorityQueue after removing "
                           + "elements: " + queue);
    }
}
Producción

Initial PriorityQueue: [For, Geeks, To, Welcome, Geeks]
PriorityQueue after removing elements: [Geeks, To]

 Ejemplo 2 

Java

// Java Program to Illustrate remove() Method
// of PriorityQueue class
// Where Elements are of Integer type
 
// Importing required classes
import java.util.*;
 
// Main class
// PriorityQueueDemo
public class GFG {
 
    // Main driver method
    public static void main(String args[])
    {
 
        // Creating an empty PriorityQueue by
        // creating an object of integer type
        PriorityQueue<Integer> queue
            = new PriorityQueue<Integer>();
 
        // Adding custom input elements
        // using add() method
        queue.add(10);
        queue.add(15);
        queue.add(30);
        queue.add(20);
        queue.add(5);
 
        // Displaying the PriorityQueue
        System.out.println("Initial PriorityQueue: "
                           + queue);
 
        // Removing elements from the PriorityQueue
        // using remove() method
        queue.remove(30);
        queue.remove(5);
 
        // Displaying the PriorityQueue elements
        // after removal
        System.out.println("PriorityQueue after removing "
                           + "elements: " + queue);
    }
}
Producción: 

Initial PriorityQueue: [5, 10, 30, 20, 15]
PriorityQueue after removing elements: [10, 20, 15]

 

Geek, ¿alguna vez te has preguntado qué sucederá si las llamadas al método remove() superan los elementos presentes en la cola? En este escenario, continuará eliminando los elementos que estaban allí y, a partir de entonces, no encontrará ningún elemento para eliminar en cuanto a prioridad, por lo que generará una excepción que es la siguiente.

Nota: esta clase implementa AbstractQueueInterface

Ejemplo 

Java

// Java Program to illustrate remove() Method
// in PriorityQueue
// Where Exception is encountered
 
// Importing required classes
import java.io.*;
import java.util.PriorityQueue;
 
// Main class
// PriorityQueueException
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating an empty PriorityQueue
        PriorityQueue<Integer> pq
            = new PriorityQueue<Integer>();
 
        // Note: Elements are inserted in unsorted order in
        // priority queue but after removal of elements
        // queue is always sorted.
 
        // Adding elements in above queue
        // using add() method
        pq.add(2);
        pq.add(14);
        pq.add(41);
        pq.add(7);
        pq.add(99);
 
        // Elements in queue are unsorted by far
 
        // Getting size of above queue before deletion
        // of any element using size() method
        System.out.println(
            "Size of priority queue before deletion : "
            + pq.size());
 
        // Printing all elements of above queue
        System.out.println(
            "Priority queue before removal : " + pq);
 
        // Calling remove() method over priority queue
        // in which there were 5 elements
 
        // Here calling remove() method say be it 2 times
        // So 2 top priority elements will be removed
        System.out.println(" 1st element removed : "
                           + pq.remove());
        System.out.println(" 2nd element removed : "
                           + pq.remove());
        System.out.println(" 3rd element removed : "
                           + pq.remove());
        System.out.println(" 4th element removed : "
                           + pq.remove());
        System.out.println(" 5th element removed : "
                           + pq.remove());
 
        // By now queue is empty and if now we made further
        // remove() call it will throw exception for this
        System.out.println(" 6th element removed : "
                           + pq.remove());
 
        // As we know smaller the integer bigger the
        // priority been set by default comparator of this
        // class
 
        // Note: Now the element is always returned sorted
        // from a priority queue is a trait of this class
 
        // Printing the queue after removal of priority
        // elements
        System.out.println(
            "Priority queue after removal as follows: "
            + pq);
    }
}

Producción:

Explicación de salida:

Está mostrando que no quedan más elementos en la cola, ya que una cola está vacía ahora, por lo que arroja NoSuchElementException .

Publicación traducida automáticamente

Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *