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] + " "); } } }
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