在Java中,要自定義PriorityQueue
的比較器,您需要創建一個實現Comparator
接口的類,并重寫compare
方法
import java.util.Comparator;
import java.util.PriorityQueue;
public class CustomComparatorExample {
public static void main(String[] args) {
// 使用自定義比較器創建優先隊列
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(new CustomComparator());
// 添加元素到優先隊列
priorityQueue.add(10);
priorityQueue.add(20);
priorityQueue.add(5);
priorityQueue.add(15);
// 從優先隊列中取出元素并打印
while (!priorityQueue.isEmpty()) {
System.out.println(priorityQueue.poll());
}
}
}
class CustomComparator implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
// 自定義比較規則,例如這里我們將數字按照降序排列
return o2 - o1;
}
}
在這個示例中,我們創建了一個名為CustomComparator
的類,該類實現了Comparator
接口。我們重寫了compare
方法,使其按照降序排列整數。然后,我們使用這個自定義比較器創建了一個PriorityQueue
,并向其中添加了一些整數。最后,我們從優先隊列中取出元素并打印,可以看到它們按照降序排列。
您可以根據需要修改compare
方法中的比較規則,以實現自定義的排序順序。