Normalerweise werden Objekte in der Warteschlange in der FIFO-Reihenfolge platziert. d. h. First-in-First-out. In bestimmten Fällen müssen Objekte basierend auf ihrer Priorität verarbeitet werden, und zu diesem Zeitpunkt kam Java PriorityQueue zum Einsatz. Darüber hinaus verfügt PriorityQueue über bestimmte Funktionen:
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Deklaration der Java PriorityQueue
Java PriorityQueue kann mit der folgenden Syntax deklariert werden.
public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
Im Folgenden sind die Konstruktoren aufgeführt, die häufig in Java PriorityQueue verwendet werden:
1. PriorityQueue(): Eine PriorityQueue wird mit 11 erstellt, da ihre anfängliche Kapazität standardmäßig eingestellt ist. Darüber hinaus werden die Elemente nach der natürlichen Reihenfolge geordnet.
2. PriorityQueue(Collection erweitert E> c): Eine PriorityQueue wird erstellt erstellt mit Elementen in der genannten Sammlung.
3. PriorityQueue(int ic): Eine PriorityQueue wird mit der genannten anfänglichen Kapazität erstellt. Darüber hinaus werden die Elemente nach der natürlichen Reihenfolge geordnet.
4. PriorityQueue(int ic, Comparator super E> comparator): Eine PriorityQueue wird mit der genannten anfänglichen Kapazität ic erstellt. Darüber hinaus werden die Elemente basierend auf dem genannten Komparator geordnet.
5. PriorityQueue(PriorityQueue erweitert E> c): Eine PriorityQueue wird erstellt erstellt mit Elementen in der genannten PriorityQueue.
6. PriorityQueue(SortedSet erweitert E> c): Eine PriorityQueue wird mit Elementen in der genannten sortierten Menge erstellt.
Sehen wir uns nun einige der häufig verwendeten Methoden in Java PriorityQueue an:
1. add(E e): Element e wird beim Aufruf dieser Methode zur PriorityQueue hinzugefügt.
2. size(): Anzahl der Elemente in der Sammlung wird zurückgegeben.
3. clear(): Alle Elemente in der PriorityQueue werden entfernt.
4. Komparator(): Komparator, der zum Sortieren der Warteschlange verwendet wird, wird zurückgegeben. Wenn natürliche Reihenfolge verwendet wird, wird null zurückgegeben.
5. enthält(Objekto): Wenn die Warteschlange das erwähnte Element o enthält, wird true zurückgegeben.
6. iterator(): Der Iterator , der über die Elemente in der Warteschlange verwendet wird, wird zurückgegeben.
7. Angebot(Ee): Das erwähnte Element e wird in die Warteschlange eingefügt.
8. peek(): Der Kopf der PriorityQueue wird abgerufen und nicht entfernt. Falls keine Elemente vorhanden sind, wird null zurückgegeben.
9. poll(): Kopf der PriorityQueue wird abgerufen und entfernt. Falls keine Elemente vorhanden sind, wird null zurückgegeben.
10. entfernen(Objekto): Eine einzelne Instanz des genannten Elements wird aus der Warteschlange entfernt.
11. toArray(): Ein Array aller Elemente in der Warteschlange wird zurückgegeben.
12. toArray(T[] a): Ein Array aller Elemente in der Warteschlange wird zurückgegeben, wobei die Laufzeit der des genannten Arrays entspricht.
Im Folgenden finden Sie Beispiele für Java PriorityQueue:
Beispielprogramm zum Erstellen einer PriorityQueue.
Code:
import java.util.Iterator; import java.util.PriorityQueue; class Main{ public static void main(String args[]){ //create a PriorityQueue PriorityQueue<String> q=new PriorityQueue<String>(); //add elements to the queue q.add("Anna"); q.add("Annamu"); q.add("Adam"); q.add("Iza"); q.add("Thukidi"); System.out.println("Head of the queue:"+q.element()); System.out.println("Head of the queue :"+q.peek()); //Retrieve elements in queue using iterator System.out.println("Queue elements are :"); Iterator it=q.iterator(); while(it.hasNext()) { System.out.println(it.next()); } //remove the element from queue q.remove(); //remove the head of the queue q.poll(); System.out.println("\n Queue after the removal of 2 elements :"); //Retrieve elements in queue using iterator Iterator<String> it2=q.iterator(); while(it2.hasNext()) { System.out.println(it2.next()); } } }
Ausgabe:
Funktionsweise des Beispielprogramms:
Beispielprogramm zum Erstellen einer PriorityQueue mithilfe eines Komparators.
Code:
import java.util.Comparator; import java.util.Iterator; import java.util.PriorityQueue; class PriorityQueueExample{ public static void main(String[] args) { //Create a custom comparator. In this, length of 2 strings are getting compared Comparator<String> cmp = new Comparator<String>() { @Override public int compare(String str1, String str2) { return str1.length() - str2.length(); } }; // PriorityQueue creation with Comparator PriorityQueue<String> q = new PriorityQueue<>(cmp); // Add elements to the Queue q.add("Anna"); q.add("Annamu"); q.add("Adam"); q.add("Iza"); q.add("Thukidi"); q.add("Sam"); q.add("Elsa"); q.add("Kukku"); q.add("Mathu"); q.add("Radha"); // Remove elements from the Queue while (!q.isEmpty()) { System.ou<em>t</em>.println(q.remove()); } } }
Output:
Working of the sample program:
Sample program to implement a PriorityQueue by making use of different methods.
Code:
import java.util.*; class Main{ public static void main(String args[]){ //create a PriorityQueue PriorityQueue<String> q=new PriorityQueue<String>(); //add elements to the queue q.add("Anna"); q.add("Annamu"); q.add("Adam"); q.add("Iza"); q.add("Thukidi"); System.out.println("Head of the queue:"+q.element()); System.out.println("Head of the queue :"+q.peek()); //Retrieve elements in queue using iterator System.out.println("Queue elements are :"); Iterator it=q.iterator(); while(it.hasNext()) { System.out.println(it.next()); } //remove the element from queue q.remove(); //remove the head of the queue q.poll(); // Check whether the element Anna is present in queue using the method Contains() boolean b = q.contains("Anna"); System.out.println("Is there any element Anna in the PriorityQueue ? " + b); //Check whether the element Iza is present in queue using the method Contains() boolean bl = q.contains("Iza"); System.out.println("Is there any element Anna in the PriorityQueue ? " + bl); } }
Output:
Working of the sample program:
Das obige ist der detaillierte Inhalt vonPriorityQueue in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!