Beispiel einer Java PriorityQueue-Klasse

Im Prioritätswarteschlange, Elemente werden gemäß ihrer natürlichen Reihenfolge oder der vom Komparator definierten Reihenfolge geordnet. Komparator ist der Faktor, der die Elemente zu Bestellzwecken vergleicht. Diese werden zum Zeitpunkt der Warteschlangenkonstruktion definiert und bestimmen die Reihenfolge der Elemente in der Warteschlange basierend auf dem Typ des verwendeten Konstruktors. Bei der natürlichen Reihenfolge werden Elemente nach dem Prinzip „First in First out (FIFO)“ geordnet und abgerufen, während Elemente wie bei PriorityQueue nach ihrer Priorität abgerufen werden. Jedem Element der Prioritätswarteschlange wird eine Priorität zugewiesen und somit wird das Element mit der höchsten Priorität immer zuerst ausgeführt.

lesen Sie auch:

  • Konvertieren Sie String mit SimpleDateFormat in ein Datum
  • So teilen Sie einen String in Java
  • Beispiel für eine Java String Intern-Methode

Die Größe von Prioritätswarteschlange ist unbegrenzt, verfügt jedoch über die interne Kapazität, seine Größe entsprechend den Elementen in der Warteschlange einzuschränken. Die Größe nimmt mit dem Hinzufügen der Elemente zur Warteschlange immer weiter zu.

Deklaration der PriorityQueue-Klasse

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

Wobei E der Typ des Elements in der Sammlung ist.

Konstruktoren der PriorityQueue-Klasse

Konstruktorbeschreibung

Prioritätswarteschlange ()Es erstellt eine Standard-PriorityQueue mit einer anfänglichen Kapazität von 11. Elemente werden in ihrer natürlichen Reihenfolge geordnet.
PriorityQueue (Sammlung c)Es erstellt eine PriorityQueue für die in der Sammlung angegebenen Elemente.
PriorityQueue (int initialCapacity)PriorityQueue wird mit der gegebenen Kapazität erstellt und die Reihenfolge der Elemente erfolgt entsprechend ihrer natürlichen Reihenfolge.
PriorityQueue (int initialCapacity, Comparator Comparator)PriorityQueue wird mit der angegebenen Kapazität erstellt, die die Elemente entsprechend dem Komparator ordnet.
PriorityQueue (PriorityQueue c)Es erstellt eine PriorityQueue für die in der PriorityQueue angegebenen Elemente.
PriorityQueue (SortedSet c)Es erstellt eine PriorityQueue für die im SortedSet angegebenen Elemente.

PriorityQueue-Klassenmethoden

Methodenbeschreibung

boolescher Wert add(E e)Fügt das angegebene Element zur Prioritätswarteschlange hinzu.
void klar ()Es löscht die Elemente aus der Warteschlange.
Komparator-KomparatorDie Reihenfolge der Elemente in der Warteschlange erfolgt nach dem Vergleich der Elemente. Der Komparatorausgang ist ein Nullwert, wenn die Reihenfolge gemäß ihrer natürlichen Reihenfolge erfolgt.
boolean enthält (Objekt o)Überprüfen Sie, ob das definierte Objekt in der Warteschlange vorhanden ist. Wenn ein Objekt in der Warteschlange vorhanden ist, gibt es den booleschen Wert „true“ oder andernfalls den Wert „false“ zurück.
Iterator iterator()Dadurch wird die Iteration über die Warteschlange durchgeführt, die bestimmte Reihenfolge der Elemente in der Warteschlange wird jedoch nicht garantiert. Um die sortierte Reihenfolge zu erhalten, müssen Sie Arrays explizit aufrufen. sort(pq. toArray ()).
boolesches Angebot (E e)Es fügt der vorhandenen Warteschlange einen neu definierten Wert hinzu.
E-UmfrageEs gibt nicht nur den Kopf der Warteschlange an, sondern entfernt auch den Kopf der Warteschlange aus der Warteschlange.
E-guck malSie zeigt auf den Kopf der Warteschlange, entfernt ihn aber nicht, anders als die Poll-Methode.
boolescher Wert entfernen (Objekt o)Es entfernt den definierten Objektwert aus der Warteschlange.
int-Größe ()Es gibt die Anzahl der Elemente in der Warteschlange zurück.
Objekt [] toArray ()Es wandelt die natürlich geordnete Warteschlange in die geordnete Array-Warteschlange um.
T [] toArray (T [] A)Es gibt die Elemente der Prioritätswarteschlange im Array-Typ zurück. Array enthält die sortierten Elemente.

Beispiel einer PriorityQueue-Klasse

import java.util.Comparator;
import java.util.PriorityQueue;
public class Queue_example {
	public static void main(String[] args) {

		      // create priority queue
  PriorityQueue < Integer >  p1 = new PriorityQueue < Integer > ();

		      // insert values in the queue
		      p1.add(0);
		      p1.add(10);
		      p1.add(2);
		      p1.add(30);
		      p1.add(4);

 System.out.println ( "Priority queue values are: "+ p1);
 System.out.println ( "Size of the Priority queue is: "+ p1.size());

		      // create comparator
		      Comparator<? super Integer> c1 = p1.comparator();

		      System.out.println ( "Comparator value is: "+ c1);
		      Integer head=p1.poll();
		      System.out.println ( "Poll of the Priority queue is: "+ head);
System.out.println ( "queue after Poll is applied on Priority queue is: "+ p1);
		      Integer head1=p1.peek();
System.out.println ( "peek of the Priority queue is: "+ head1);
		      p1.offer(50);
System.out.println ( "Priority queue after using offer is: "+ p1);
		      boolean b=p1.contains(2);
System.out.println ( "checks if 2 is present in : "+ b);
		      Object[] o1 = p1.toArray();

		      System.out.println (“Value in array: ");

		      for ( int i = 0; i<o1.length; i++ ){
System.out.println (“array content: " + o1[i].toString ()) ;
	}
}
}
  • Das obige Beispiel veranschaulicht die Verwendung der Methoden add, poll, peek, size, toArray und comparator.
  • import java.util.Comparator; Dieses Paket enthält die Komparatorfunktionen. Daher ist ein Import erforderlich, wenn die Komparatormethode verwendet wird.
  • PriorityQueue p1 = new PriorityQueue (); Zeile erstellt die PriorityQueue-Instanz p1 mithilfe des neuen Operators.
  • p1.add (0); Zeile fügt das angegebene Element zur PriorityQueue p1 hinzu.
  • System.out.println („Größe der Prioritätswarteschlange ist: „+ p1.size ());“ Die Anweisung gibt die Größe der PriorityQueue p1 zurück und zeigt das Ergebnis auf dem Ausgabebildschirm an.
  • Komparator c1 = p1.komparator(); Zeile erstellt die Instanz c1 für den Komparator.
  • Ganzzahl head=p1.poll (); Zeile zeigt auf den Poll-Wert von PriorityQueue p1 und speichert das Poll-Element in der Variablen head.
  • Ganzzahl head1=p1.peek (); Die Linie zeigt auf den Peek-Wert von PriorityQueue p1 und speichert das Peek-Element in der Variablen head.
  • p1.Angebot (50); Zeile fügt das neu angegebene Element zur PriorityQueue p1 hinzu.
  • boolean b=p1.contains(2); Zeile prüft, ob das angegebene Element 2 in der PriorityQueue p1 vorhanden ist oder nicht, und gibt abhängig von der Existenz des Elements in p1 den booleschen Wert „true“ oder „false“ zurück. Es gibt „true“ zurück, wenn in p1 ein Wert vorhanden ist, andernfalls wird ein boolescher Wert „false“ zurückgegeben.
  • Objekt[] o1 = p1.toArray(); line wandelt alle PriorityQueue-Elemente in den sortierten Array-Typ um.

Java PriorityQueue-Beispiel

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen