簡介
PriorityQuue 是Java 中的一種基本資料結構,它提供了一種高效的方式管理根據優先順序排序的元素。但是,預設排序機制可能並不總是與所需的排序順序一致。
自訂排序順序
要為 PriorityQueue 指定自訂排序順序,請使用建構子需要比較器比較器。傳入一個比較器,依照所需的排序順序比較元素。
比較器實作
比較器應該實作compare方法來指定比較邏輯。此方法接受兩個元素並傳回一個指示相對順序的整數:
範例
考慮一個範例,我們希望以字串長度以升序對字串的PriorityQueue 進行排序。 Offer
import java.util.*; class StringLengthComparator implements Comparator<String> { @Override public int compare(String x, String y) { return x.length() - y.length(); // Sort by ascending length } } ... Comparator<String> comparator = new StringLengthComparator(); PriorityQueue<String> queue = new PriorityQueue<>(10, comparator); queue.add("short"); queue.add("very long indeed"); queue.add("medium");
add 和Offer 都是PriorityQueue 介面中的方法實作。 >輸出
PriorityQueue將提供以下元素:指定的排序順序。
以上是如何在 Java 的 PriorityQueue 中實作自訂排序順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!