共計 816 個字符,預計需要花費 3 分鐘才能閱讀完成。
在 Java 中,可以通過實現 Comparator 接口,并在 PriorityQueue 的構造函數中傳入該 Comparator 對象來實現自定義排序。
以下是一個示例代碼,按照字符串長度進行排序:
import java.util.Comparator;
import java.util.PriorityQueue;
public class Main {public static void main(String[] args) {PriorityQueue<String> queue = new PriorityQueue<>(new StringLengthComparator());
queue.add("Java");
queue.add("Python");
queue.add("C++");
queue.add("Ruby");
while (!queue.isEmpty()) {System.out.println(queue.poll());
}
}
static class StringLengthComparator implements Comparator<String> {@Override
public int compare(String s1, String s2) {return Integer.compare(s1.length(), s2.length());
}
}
}
輸出結果:
C++
Java
Ruby
Python
在這個示例中,我們創建了一個 PriorityQueue 對象,傳入了 StringLengthComparator 對象。StringLengthComparator 實現了 Comparator 接口,并重寫了 compare 方法來定義自定義的排序邏輯,比較字符串的長度。
在 PriorityQueue 中,每次從隊列中取出元素時,會根據 Comparator 的 compare 方法進行比較并排序。因此,輸出結果會按照字符串的長度從小到大排序。
丸趣 TV 網 – 提供最優質的資源集合!
正文完
發表至: Java
2023-12-09