首頁 > Java > java教程 > 我如何在Java中修改PriorityQueue的元素?

我如何在Java中修改PriorityQueue的元素?

PHPz
發布: 2023-08-26 10:13:23
轉載
1462 人瀏覽過

我如何在Java中修改PriorityQueue的元素?

通常,佇列遵循先進先出(FIFO)的原則,但是PriorityQueue 在按照優先順序的方式存取元素時,遵循基於優先順序的方法。隊列的每個元素 具有與之關聯的優先權。元素根據自然排序進行優先排序 order. However, we can provide custom orders using a comparator. The elements of PriorityQueue are not actually sorted, they are only retrieved in sorted order. This feature allows us to modify an element of PriorityQueue easily.

Java Program to modify an element of a ProrityQueue

在開始程式之前,讓我們先了解PriorityQueue的幾個內建方法 -

  • add() − It is used to add a single element to the queue

  • offer() − 它也將給定的元素插入到佇列中。

  • peek() − 用於檢索佇列的第一個元素。

  • remove() − It is used to remove the specified element from the queue.

Approach 1

  • 定義一個PriorityQueue集合的對象,並使用'add()'方法儲存一些元素

  • method.
  • Now, using ‘peek()’ method show the first element of queue and then remove this 使用 'remove()' 方法從佇列中移除元素

  • 進一步移動,使用內建方法在相同位置插入一個新元素

  • # ‘offer()’.
  • Again show the modified first element.

#Example

的中文翻譯為:

範例

In the following example, we will modify an element of PriorityQueue. The elements are

沒有比較器的優先級,這意味著它們將按升序存取。

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]
登入後複製

方法二

  • 使用一個名為的內建方法定義一個PriorityQueue集合的對象 ‘Collections.reverseOrder()’用於將元素按降序儲存。

  • 現在,請按照前面範例中所述的相同步驟進行。

#Example 

的中文翻譯為:

範例 

#In the following example, we will modify an element of PriorityQueue. The elements are 使用比較器進行優先排序,以便按降序提供存取。

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]
登入後複製

結論

我們透過定義Java Collection Framework的PriorityQueue類別來開始本文 實作Queue介面的內容。在下一節中,我們將討論一些內建的內容 在給定的PriorityQueue中修改元素的Java程式中所使用的方法

以上是我如何在Java中修改PriorityQueue的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板