Heim  >  Artikel  >  Java  >  PriorityQueue in Java

PriorityQueue in Java

PHPz
PHPzOriginal
2024-08-30 16:04:30626Durchsuche

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

  • Es ist eine unbegrenzte Warteschlange.
  • Standardmäßig erfolgt die Reihenfolge der Elemente in einer natürlichen Reihenfolge.
  • Nullwerte sind nicht zulässig.
  • Nicht vergleichbare Objekte können nicht zum Erstellen einer PriorityQueue verwendet werden.

Deklaration der Java PriorityQueue

Java PriorityQueue kann mit der folgenden Syntax deklariert werden.

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

Konstruktoren von Java PriorityQueue

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(CollectionE> 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 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(PriorityQueueE> c): Eine PriorityQueue wird erstellt erstellt mit Elementen in der genannten PriorityQueue.

6. PriorityQueue(SortedSetE> c): Eine PriorityQueue wird mit Elementen in der genannten sortierten Menge erstellt.

Methoden

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.

Beispiele für Java PriorityQueue

Im Folgenden finden Sie Beispiele für Java PriorityQueue:

Beispiel #1

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:

PriorityQueue in Java

Funktionsweise des Beispielprogramms:

  • Erstellen Sie eine PriorityQueue q.
  • Elemente zur Warteschlange hinzufügen.
  • Den Kopf der Warteschlange drucken.
  • Drucken Sie alle Elemente in der Warteschlange mit dem Iterator.
  • Entfernen Sie zwei Elemente.
  • Drucken Sie alle Elemente in der Warteschlange nach dem Entfernen von zwei Elementen.

Beispiel #2

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:

PriorityQueue in Java

Working of the sample program:

  • Create a custom comparator where the elements in the Queue are compared based on the length.
  • Create a PriorityQueue q.
  • Add elements to the Queue.
  • Remove the elements from the queue based on the length of the strings.
  • Print the elements in the queue in the order of removal.

Example #3

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:

PriorityQueue in Java

Working of the sample program:

  • Create a PriorityQueue q.
  • Add elements and Print the head of the queue.
  • Print all the elements in the Queue using iterator.
  • Remove two elements using the methods remove() and poll().
  • Check whether the two elements Anna and Iza are available in Queue using the method Contains().

Das obige ist der detaillierte Inhalt vonPriorityQueue in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn