Javascript 優先隊列

| | | | | | | |

如何在 Java 中使用 PriorityQueue

優先級隊列在編程中用於創建數據結構,其中具有最高值的數據項必須首先由該結構處理。

編碼在 Java 中,您可能會遇到想要實現優先級隊列的情況。這就是Java Queue接口的用武之地。但是,因為隊列是一個接口,所以不能直接在代碼中實現。如果你想創建一個具有堆數據結構的優先級隊列,你需要使用 PriorityQueue 來代替。

本教程將討論 Java 中的 PriorityQueue 的基礎知識,並探索如何創建隊列。本教程還將探討 PriorityQueue 提供的可用於檢索和操作隊列內容的主要方法。

Java 代碼和 PriorityQueue

給出了隊列,如堆棧具有執行操作的特定順序的結構。在隊列的情況下,按照先進先出 (FIFO) 執行操作。這意味著列表中的第一個項目將永遠是第一個出來的 - 。隊列按輸入的項目排序

假設您在一家餐館並且您已下訂單。我們建議您在每位顧客點餐的那一刻就為您服務,因為這是最好的方法。因此,如果您在 Jack 之後訂購食物,您希望在 Jack 之後立即被送達。這是一個隊列的例子。

出於本教程的目的,我們將重點開發工作 PriorityQueue 接口隊列,等待,它用於在 Java 中創建優先級隊列行。

PriorityQueues 是隊列 i 的一種類型,它的項目根據它們的優先級排序。這意味著在值為 ‚Äã‚Äã5 和 10 的隊列中,10 將始終位於隊列的頂部,即使它是最後添加的。

創建優先級隊列

要在 Java 中創建優先級隊列,您必須首先導入 java.util.PriorityQueue 。這個包包含我們可以用來創建隊列的 PriorityQueue 方法。我們可以使用以下代碼導入 PriorityQueue 包:

現在,我們導入了PriorityQueue,我們可以在使用包中創建一個等待隊列。用於創建 PriorityQueue 的語法:

FIND Let this:

  • PriorityQueue 告訴我們的程序它想創建一個優先級隊列
  • DataType是我們隊列中等待存儲的數據類型。
  • queue_name是等待隊列的變量名,我們創建將。授予
  • 新的PriorityQueue(); 初始化先驗隊列閉嘴

假設我們要創建一個隊列來存儲我們餐廳的客戶訂單我們希望我們的隊列存儲每個客戶的餐桌編號,我們可以使用以下代碼創建此堆棧:..

在這個例子中,我們創建了一個 PriorityQueue 實例,叫做 orders integer values ‚Äã‚Äã 存儲在我們的隊列中,將使用 FIFO 數據結構訪問和刪除項目。

向 PriorityQueue 添加元素

在 Java 中,隊列中的每個元素都被調用element.

將項目添加到隊列中,我們可以使用 add() 這個方法有一個參數:你想要添加到隊列中的項目的 va lore 。如果等待e的隊列滿了,add()返回異常。

另外,我們可以使用Offer()添加一個項目到隊列。 add()Offer() 的區別在於 Offer() 如果隊列已滿則返回 false,而 add( ) 引發異常。

假設我們想將表 #22 和 #17 按順序添加到我們的堆棧中,因為他們剛點了午餐。我們可以使用以下代碼:

我們的代碼返回:

Break from Descended 我們的例子。首先,我們導入了 PriorityQueue 類,稍後我們將在代碼中使用它。所以,我們已經聲明了一個名為 AddCustomer 的類,它存儲了我們在這個例子中的代碼。我們類中的代碼是這樣工作的:

  1. 我們使用 new PriorityQueue <> (); 創建一個名為 commands 的優先級隊列.
  2. 我們使用 add() 將 table #22 添加到我們的堆棧中
  3. 我們打印單詞 commands:. 跟隨通過控制台中堆棧的內容。
  4. 我們使用 offer () 將表 #17 添加到我們的堆棧中。
  5. 我們打印到控制台術語 updated commands 。 後面跟著修改後的棧內容
  6. 22 首先出現在我們的棧中,因此當我們移除一個元素時將最先退出。換句話說,數組#22 在我們的棧頂。表 #17 存儲在我們堆棧的第二個位置。記住——你,優先等待的隊列是按照 FIFO 順序分類的

我們的代碼返回一個包含我們原始命令的數組,然後是一個包含我們更新命令的數組。

從 PriorityQueue 中刪除項目

可以使用兩種方法從 PriorityQueue 中刪除項目:

假設我們的副老闆已經處理了命令#17,並且想要將其從堆棧中移除。在處理完訂單之後,我們的廚師準備編號 22 並希望從堆棧中移除。

Ref. 17 在我們堆棧的位置 2 並訂購編號 22 i s 在位置 1。我們想按順序消除這些項目。我們可以使用此代碼刪除命令:

我們的代碼返回:

讓我們的代碼暫停一下。首先,我們使用 delete () 刪除堆棧中位置 2 的訂單。此命令 #17 已刪除

我們的代碼打印了一條消息:.? 訂單#17被刪除後跟delete()方法的結果。 delete()成功從我們的棧中移除#17,方法返回true

接下來,我們使用 poll () 從堆棧中刪除頂部項目。在這種情況下,它沒有訂單。 22. poll() 有命令刪除ne。 22 並返回已刪除的項目。刪除項目後,我們打印消息 Commander # [order number removed] has been removed from the queue 。 在控制台中。

Get Item

peek() 方法用於獲取隊列項(第一項在隊列中)。假設我們想知道堆棧中下一個訂單的值,因為我們的副主廚已準備好接受新訂單。

我們可以使用此代碼檢索旁邊的客戶的表號行:

我們的代碼返回:

我們棧的第一個元素是22,所以當我們使用peek()的時候,我們的程序返回值22"我們代碼的最後一行,我們打印一條消息說:要處理的順序是table#[棧上的第一序號],其中棧上的第一序號是由peek().

隊列按優先級迭代

通常在使用隊列時,您希望迭代優先級隊列中的項目

p>

為此我們可以使用iterator(),它是java.util.Iterator包的一部分。我們使用代碼<>iterator(),您必須首先使用此代碼導入 Iterator 包:

假設我們想將餐廳訂單隊列中所有項目的列表打印到控制台,我們可以使用以下代碼:

我們的代碼返回:

在我們的代碼中,我們首先將四個值 ‚Äã‚Äã 添加到我們的隊列中。然後我們使用 iterator () 創建一個迭代器,我們可以使用它來檢查優先級隊列中的所有項目。接下來,我們創建一個 while 遍歷迭代器中的每個元素 - 對於 command 隊列中的每個元素 - 。並在隊列中打印以下值<

h2> 附加方法PriorityQueue

PriorityQueue 類中經常使用其他三種方法。它們是:

方法名 description
size() 返回隊列的長度。
toArray() 將隊列轉換為數組。
contains (elementName) 在隊列中搜索一個元素。

結論

Java中使用PriorityQueue類來實現隊列接口等待。隊列使用 FIFO 數據結構,所以先出先出。

本教程展示了 Java 中的隊列和優先隊列的基礎知識。我們還討論瞭如何創建隊列以及可用於檢索的主要方法項目和操作隊列。

現在您有了開始像專業人士一樣使用 Java PriorityQueue 類所需的工具!

>

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method