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