Programa Java para implementar la API PriorityQueue

PriorityQueue es una estructura de datos lineal en la que los elementos se ordenan según su orden natural o mediante algún comparador personalizado proporcionado en la cola en el momento de la construcción. En PriorityQueue, la parte delantera de la cola apunta al elemento menor y la parte trasera apunta al elemento mayor de acuerdo con el ordenamiento natural. Para PriorityQueue alfabético, sus valores ASCII se tendrán en cuenta para realizar el pedido.

Algunas características importantes de PriorityQueue son las siguientes:

  • No permite insertar los elementos nulos.
  • Es una cola ilimitada, lo que significa que su tamaño se puede expandir.
  • Hereda las clases como Object, Abstract Collection, AbstractQueue .
  • No es seguro para subprocesos.
  • No se puede crear para objetos no comparables.

Tiempo Complejidades de varias operaciones:

  • La inserción y la eliminación son de orden O(log(n))
  • El método remove() y contains() es de orden O(n)
  • Las operaciones de recuperación son las más rápidas que son del orden O(1)

La clase PriorityQueue hereda Queue Interface y todos sus métodos. PriorityQueue API implementa serializable, Iterable, Collection y Queue que se pueden percibir desde la arquitectura que se muestra a continuación. 

Serializable, Iterable<E>, Collection<E>, Queue<E>

Sintaxis: 

public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable

Parámetro: E — El tipo de elementos retenidos en esta cola.

Métodos: 

Método   Escribe       Descripción    
añadir (E mi)            booleano  Inserta un elemento e en PriorityQueue
clear()      vacío     Elimina todos los elementos de PriorityQueue  
contiene (Objeto O)     booleano Retorna verdadero si contiene el elemento especificado
iterador()       Iterador<E> Devuelve un iterador sobre todos los elementos.
eliminar​(Objeto o)  booleano Elimina el elemento especificado de la cola
comparador()        Comparador<E>    Devuelve el comparador personalizado utilizado para ordenar los elementos.
aArray()   Objeto[]     Devuelve una array que contiene todos los elementos de PriorityQueue.
ojeada()   <ES>  Devolver el encabezado de PriorityQueue sin eliminar el elemento de la Cola
encuesta()          <ES>   Elimina y devuelve la cabeza de la cola. Devuelve nulo si la cola está vacía.
divisor()    Separador<E>  Crea un Spliterator de enlace tardío y rápido sobre los elementos en PriorityQueue.    

Implementación:

Ejemplo

Java

// Java Program to implement Priority Queue API
 
// Importing all classes from java.util package
import java.util.*;
 
// Class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating(Declaring) an object of PriorityQueue of
        // Integer type i.e Integer elements will be
        // inserted in above object
        PriorityQueue<Integer> pq = new PriorityQueue<>();
 
        // Adding elements to the object created above
        // Custom inputs
        pq.add(89);
        pq.add(67);
        pq.add(78);
        pq.add(12);
        pq.add(19);
 
        // Printing the head of the PriorityQueue
        // using peek() method of Queues
        System.out.println("PriorityQueue Head:"
                           + pq.peek());
 
        // Display message
        System.out.println("\nPriorityQueue contents:");
 
        // Defining the iterator to traverse over elements of
        // object
        Iterator i = pq.iterator();
 
        // Condition check using hasNext() method which hold
        // true till single element is remaining in List
        while (i.hasNext()) {
 
            // Printing the elements of object
            System.out.print(i.next() + " ");
        }
 
        // Removing random element from above elements added
        // from the PriorityQueue
        // Custom removal be element equals 12
        pq.remove(12);
 
        // Display message
        System.out.print("\nPriorityQueue contents:");
 
        // Declaring iterator to traverse over object
        // elements
        Iterator it = pq.iterator();
 
        // Condition check using hasNext() method which hold
        // true till single element is remaining in List
        while (it.hasNext()) {
 
            // Printing the elements
            System.out.print(it.next() + " ");
        }
 
        // Removing all the elements from the PriorityQueue
        // using clear() method
        pq.clear();
 
        // Adding another different set of elements
        // to the Queue object
        // Custom different inputs
        pq.add(5);
        pq.add(7);
        pq.add(2);
        pq.add(9);
 
        // Checking a random element just inserted
        // using contains() which returns boolean value
        System.out.print("The queue has 7 = "
                         + pq.contains(7));
 
        // Display message for content in Priority queue
        System.out.print("\nPriorityQueue contents:");
 
        // Converting PriorityQueue to array
        // using toArray() method
        Object[] arr = pq.toArray();
 
        // Iterating over the array elements
        for (int j = 0; j < arr.length; j++) {
 
            // Printing all the elements in the array
            System.out.print(arr[j] + " ");
        }
    }
}
Producción

PriorityQueue Head:12

PriorityQueue contents:
12 19 78 89 67 
PriorityQueue contents:19 67 78 89 The queue has 7 = true
PriorityQueue contents:2 7 5 9 

Publicación traducida automáticamente

Artículo escrito por namitachaudhary60 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 *