Normalerweise folgen Warteschlangen dem First-In-First-Out-Prinzip (FIFO), aber PriorityQueue Beim priorisierten Zugriff auf Elemente wird ein prioritätsbasierter Ansatz verfolgt. jedes Element der Warteschlange Ist mit einer Priorität verknüpft. Elemente werden entsprechend ihrer natürlichen Reihenfolge priorisiert Wir können jedoch kundenspezifische Bestellungen mithilfe eines Komparators bereitstellen PriorityQueue werden nicht wirklich sortiert, sie werden nur in sortierter Reihenfolge abgerufen. Diese Funktion ermöglicht es uns, ein Element von PriorityQueue einfach zu ändern.
Bevor wir das Programm starten, wollen wir zunächst einige integrierte Methoden von PriorityQueue verstehen -
add() − Wird verwendet, um ein einzelnes Element zur Warteschlange hinzuzufügen
offer() − Außerdem wird das angegebene Element in die Warteschlange eingefügt.
peek() − wird verwendet, um das erste Element der Warteschlange abzurufen.
remove() − Wird verwendet, um das angegebene Element aus der Warteschlange zu entfernen.
Definieren Sie ein PriorityQueue-Sammlungsobjekt und verwenden Sie die Methode „add()“, um einige Elemente zu speichern
Jetzt zeigen Sie mit der Methode „peek()“ das erste Element der Warteschlange an und entfernen es dann Entfernen Sie Elemente aus der Warteschlange mit der Methode „remove()“.
Gehen Sie weiter und fügen Sie mithilfe integrierter Methoden ein neues Element an derselben Position ein
Zeigen Sie noch einmal das geänderte erste Element.
Im folgenden Beispiel ändern wir ein Element von PriorityQueue
Für Komparatoren gibt es keine Priorität, was bedeutet, dass auf sie in aufsteigender Reihenfolge zugegriffen wird.
import java.util.*; public class Modify { public static void main(String[] args) { PriorityQueue<Integer> queuePq = new PriorityQueue<>(); // inserting elements queuePq.add(7); queuePq.add(9); queuePq.add(2); queuePq.add(4); queuePq.add(3); System.out.println("Original Queue: " + queuePq); int head1 = queuePq.peek(); // accessing first element System.out.println("The first element in Queue: " + head1); queuePq.remove(2); // removing first element queuePq.offer(1); // adding new element at first position int head2 = queuePq.peek(); // accessing first element System.out.println("The updated first element in Queue: " + head2); queuePq.offer(2); // adding new element at first position System.out.println("Newly updated Queue: " + queuePq); } }
Original Queue: [2, 3, 7, 9, 4] The first element in Queue: 2 The updated first element in Queue: 1 Newly updated Queue: [1, 3, 2, 9, 4, 7]
Definieren Sie ein Objekt der PriorityQueue-Sammlung mithilfe einer integrierten Methode namens „Collections.reverseOrder()“ wird verwendet, um Elemente in absteigender Reihenfolge zu speichern.
Befolgen Sie nun die gleichen Schritte wie im vorherigen Beispiel.
Im folgenden Beispiel ändern wir ein Element von PriorityQueue Verwenden Sie einen Komparator zur Priorisierung, um den Zugriff in absteigender Reihenfolge bereitzustellen.
import java.util.*; public class Modify { public static void main(String[] args) { PriorityQueue<Integer> queuePq = new PriorityQueue<>(Collections.reverseOrder()); // inserting elements queuePq.add(7); queuePq.add(9); queuePq.add(2); queuePq.add(1); queuePq.add(3); System.out.println("Original Queue: " + queuePq); int head1 = queuePq.peek(); // accessing first element System.out.println("The first element in Queue: " + head1); queuePq.remove(9); // removing first element queuePq.offer(8); // adding new element at first position int head2 = queuePq.peek(); // accessing first element System.out.println("The updated first element in Queue: " + head2); queuePq.offer(9); // adding new element at first position System.out.println("Newly updated Queue: " + queuePq); } }
Original Queue: [9, 7, 2, 1, 3] The first element in Queue: 9 The updated first element in Queue: 8 Newly updated Queue: [9, 7, 8, 1, 3, 2]
Wir beginnen diesen Artikel mit der Definition der PriorityQueue-Klasse des Java Collection Framework Implementieren Sie den Inhalt der Queue-Schnittstelle. Im nächsten Abschnitt besprechen wir einige der integrierten Funktionen Methode, die in einem Java-Programm zum Ändern von Elementen in einer bestimmten PriorityQueue verwendet wird
Das obige ist der detaillierte Inhalt vonWie ändere ich Elemente von PriorityQueue in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!