使用比較器自訂 PriorityQueue 排序
PriorityQueue 提供排序功能,但要指定排序順序,必須實作自訂比較器函數。
自訂比較器排序
要自訂排序行為,請使用採用 Comparator
public class StringLengthComparator implements Comparator<String> { @Override public int compare(String x, String y) { return Integer.compare(x.length(), y.length()); } }
範例:依字串長度排序
考慮以下程式碼:
Comparator<String> comparator = new StringLengthComparator(); PriorityQueue<String> queue = new PriorityQueue<>(10, comparator); queue.add("short"); queue.add("very long indeed"); queue.add("medium"); while (!queue.isEmpty()) { System.out.println(queue.remove()); }
此程式碼創建一個PriorityQueue,以字串的長度對字串進行排序,較短的字串給予較高的值
Offer 與Add 方法
雖然「offer」和「add」是不同的介面方法實現,但它們都會在PriorityQueue 中添加一個元素。對於 PriorityQueue,offer 方法只需呼叫 add 方法。如果 PriorityQueue 已滿且無法接受新元素,這兩種方法都有可能引發例外。
總而言之,對於自訂排序,請實作一個比較器函數並將其作為參數傳遞給 PriorityQueue 建構函數。這允許根據您自己的比較邏輯進行排序,例如按字串長度或任何其他所需的指標排序。
以上是如何自訂 Java PriorityQueue 的排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!