PriorityQueue in Java

Farkhanda Athar 12 Oktober 2023
  1. Deklaration der PriorityQueue in Java
  2. Element zu PriorityQueue hinzufügen
  3. Entfernen von Elementen aus PriorityQueue
  4. Zugriff auf PriorityQueue-Elemente
  5. Iterieren der PriorityQueue
PriorityQueue in Java

Eine PriorityQueue wird verwendet, wenn die Objekte basierend auf der Priorität fortfahren müssen. Es basiert auch auf dem First-In-First-Out-Algorithmus, aber manchmal müssen die Elemente basierend auf der Priorität bearbeitet werden. Deshalb kommt PriorityQueue ins Spiel. PriorityQueue basiert auf einem Priority-Heap. Die Elemente in der PriorityQueue sind nach natürlicher Reihenfolge angeordnet, und zur Bauzeit der queue hängt es davon ab, welcher Konstruktor verwendet wurde.

Deklaration der PriorityQueue in Java

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

Hier ist E der Typ der Elemente, die in dieser Warteschlange gehalten werden.

Lassen Sie uns besprechen, wie die verschiedenen Operationen in der Klasse PriorityQueue ausgeführt werden können.

Element zu PriorityQueue hinzufügen

Um ein Element in die PriorityQueue aufzunehmen, ist es möglich, die Methode add() oder addition() zu verwenden. Die Einfügereihenfolge wird nicht in der PriorityQueue gespeichert. Diese Elemente werden nach der Prioritätsreihenfolge gespeichert, die standardmäßig aufsteigend ist.

Beispiel:

import java.io.*;
import java.util.*;

public class PriorityQueueDemo {
  public static void main(String args[]) {
    PriorityQueue<String> pq = new PriorityQueue<>();

    pq.add("Welcome");
    pq.add("To");
    pq.add("Party");
    System.out.println(pq);
  }
}

Ausgabe:

[To, Welcome, Party]

Entfernen von Elementen aus PriorityQueue

Um das Element aus einer PriorityQueue zu entfernen, können wir die Methode delete() verwenden. Wenn mehrere solcher Objekte vorhanden sind, wird die erste Instanz des Objekts entfernt. Zusätzlich ist es auch möglich, den Kopf mit der Methode poll() zu nehmen und dann zu ersetzen.

import java.io.*;
import java.util.*;
public class PriorityQueueDemo {
  public static void main(String args[]) {
    PriorityQueue<String> pq = new PriorityQueue<>();
    pq.add("Welcome");
    pq.add("To");
    pq.add("Party");

    System.out.println("Initial PriorityQueue " + pq);
    pq.remove("Geeks");
    System.out.println("After Remove - " + pq);
    System.out.println("Poll Method - " + pq.poll());
    System.out.println("Final PriorityQueue - " + pq);
  }
}

Ausgabe:

Initial PriorityQueue [To, Welcome, Party]
After Remove - [To, Welcome]
Poll Method - To
Final PriorityQueue - [Party]

Zugriff auf PriorityQueue-Elemente

Da Queue auf dem First In First Out-Prinzip basiert, können wir nur auf den Kopf der Queue zugreifen. Um auf die prioritären Queue-Elemente zuzugreifen, können Sie die Methode peek() verwenden.

Beispiel:

// Java program to access elements
// from a PriorityQueue
import java.util.*;

class PriorityQueueDemo {
  // Main Method
  public static void main(String[] args) {
    // Creating a priority queue
    PriorityQueue<String> pq = new PriorityQueue<>();
    pq.add("Welcome");
    pq.add("To");
    pq.add("Party");
    System.out.println("PriorityQueue: " + pq);

    // Using the peek() method
    String element = pq.peek();
    System.out.println("Accessed Element: " + element);
  }
}

Ausgabe:

PriorityQueue: [To, Welcome, Party]
Accessed Element: To

Iterieren der PriorityQueue

Es gibt viele Möglichkeiten, über die PriorityQueue zu iterieren. Die bekannteste Methode besteht darin, die queue in ein Array umzuwandeln und es dann mit der for-Schleife zu durchlaufen. Darüber hinaus verfügt die queue über einen internen Iterator, mit dem die queue durchlaufen werden kann.

Beispiel:

import java.util.*;
public class PriorityQueueDemo {
  public static void main(String args[]) {
    PriorityQueue<String> pq = new PriorityQueue<>();

    pq.add("Welcome");
    pq.add("To");
    pq.add("Party");

    Iterator iterator = pq.iterator();

    while (iterator.hasNext()) {
      System.out.print(iterator.next() + " ");
    }
  }
}

Ausgabe:

To Welcome Party

Verwandter Artikel - Java Queue