在Java中,可以通過實現Comparable
接口或者創建一個Comparator
來自定義優先級。
Comparable
接口:public class CustomPriority implements Comparable<CustomPriority> {
private int priority;
public CustomPriority(int priority) {
this.priority = priority;
}
@Override
public int compareTo(CustomPriority other) {
return Integer.compare(this.priority, other.priority);
}
}
然后,你可以將這個類的對象放入一個優先隊列(PriorityQueue
)中,優先隊列會根據compareTo
方法的返回值對元素進行排序。
Comparator
:import java.util.Comparator;
public class CustomPriorityComparator implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
return Integer.compare(o1, o2);
}
}
然后,你可以在創建PriorityQueue
時傳入這個比較器:
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(new CustomPriorityComparator());
這樣,優先隊列會根據CustomPriorityComparator
中的compare
方法對元素進行排序。