首頁 >Java >java教程 >如何自訂PriorityQueue的排序順序?

如何自訂PriorityQueue的排序順序?

Susan Sarandon
Susan Sarandon原創
2024-12-13 08:40:10779瀏覽

How Can I Customize the Sort Order of a PriorityQueue?

自訂 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn