在 Java 中使用 PriorityQueue 對元素進行優先排序
在 Java 中使用 PriorityQueue 可以有效地管理集合中的優先級。此資料結構維護一個佇列,其中根據可自訂的比較器排列元素,確保首先檢索優先順序最高的元素。
自訂排序順序
對PriorityQueue 根據您的特定要求,利用接受 Comparator
import java.util.Comparator; public class StringLengthComparator implements Comparator<String> { @Override public int compare(String s1, String s2) { if (s1.length() < s2.length()) { return -1; } if (s1.length() > s2.length()) { return 1; } return 0; } }
offer 與add 方法
同時提供和添加方法將元素添加到PriorityQueue,它們提供了細微的差異。如果由於容量限製而無法新增元素,則 Offer 傳回 false,而在這種情況下 add 會拋出 IllegalStateException。然而,在無界的 PriorityQueue 中,兩種方法的行為相同,都會在佇列中加入元素。
透過自訂比較器說明PriorityQueue 的用法:
import java.util.PriorityQueue; public class PQDemo { public static void main(String[] args) { PriorityQueue<String> queue = new PriorityQueue<>(10, new StringLengthComparator()); queue.add("short"); queue.add("very long indeed"); queue.add("medium"); while (!queue.isEmpty()) { System.out.println(queue.remove()); } } }
輸出:
short medium very long indeed
在此範例中,優先權佇列依字串的長度對字串進行排序,檢索最短的字串首先。
以上是如何使用Java的PriorityQueue來管理元素優先權?的詳細內容。更多資訊請關注PHP中文網其他相關文章!