Heim  >  Artikel  >  Java  >  Wie ändere ich Elemente von PriorityQueue in Java?

Wie ändere ich Elemente von PriorityQueue in Java?

PHPz
PHPznach vorne
2023-08-26 10:13:231437Durchsuche

Wie ändere ich Elemente von PriorityQueue in Java?

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.

Java-Programm zum Ändern eines Elements einer ProrityQueue

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.

Ansatz 1

  • Definieren Sie ein PriorityQueue-Sammlungsobjekt und verwenden Sie die Methode „add()“, um einige Elemente zu speichern

  • Methode.
  • 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

  • „offer()“.
  • Zeigen Sie noch einmal das geänderte erste Element.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

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);
   }
}

Ausgabe

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]

Methode 2

  • 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.

Die chinesische Übersetzung von

Beispiel

lautet:

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);
   }
}     

Ausgabe

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]

Fazit

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen