自訂 PriorityQueue 中的排序順序
PriorityQueue 是有用的資料結構,它維護其元素的排序順序。預設情況下,它會根據元素的自然順序進行排序。若要自訂此順序,您可以使用比較器。
使用比較器
PriorityQueue 建構子有一個重載,它將 Comparator 作為參數。此比較器定義佇列的排序標準。例如,考慮一個根據長度對字串進行排序的 PriorityQueue:
Comparator<String> comparator = new StringLengthComparator(); PriorityQueue<String> queue = new PriorityQueue<>(10, comparator);
Comparator 實作
StringLengthComparator 類別實作 Comparator 介面:
public class StringLengthComparator implements Comparator<String> { public int compare(String x, String y) { return x.length() - y.length(); } }StringLengthComparator 類別實作 Comparator 介面:透過比較字串長度,比較器建立所需的排序order.
Offer 與Add
offer 和add 方法都會在佇列中加入一個元素。但是,如果元素新增成功,offer 會傳回 true,而如果佇列已滿,add 會拋出例外。對於無界的 PriorityQueue,這兩種方法之間沒有功能差異。以上是如何自訂PriorityQueue的排序順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!