Fox*_*Fox 0 java priority-queue comparator data-structures
我正在尝试使用优先级队列编写一个简单的应用程序.我收到以下错误 - "错误:leastPriority不是抽象的,并且不会覆盖Comparator中的抽象方法compare(Integer,Integer)"和"错误:不兼容的类型Comparator cmp = new leastPriority();"
有人可以用这段代码指出问题.
我的代码是:
class leastPriority implements Comparator<Integer> {
public int compare(Reservation x, Reservation y){
if(x.getPriority() > y.getPriority()){
return -1;
}
if(x.getPriority() < y.getPriority()){
return +1;
}
return 0;
}
}
public class prioQueue{
public static void main(String args[]){
Comparator<Reservation> cmp = new leastPriority();
PriorityQueue<Reservation> queue = new PriorityQueue<Reservation>(10,cmp);
queue.add(new Reservation(1,"Andy",10));
queue.add(new Reservation(1,"Peter",1));
queue.add(new Reservation(1,"John",4));
while(true){
Reservation r = queue.poll();
if(r==null){
break;
}
System.out.println(r.getName());
}
}
}
Run Code Online (Sandbox Code Playgroud)
您的类型参数Comparator<T>和compare(T o1, T o2)方法的参数不匹配.由于在界面中它们是相同的,因此您需要为它们提供相同的类型.
改变这个:
class leastPriority implements Comparator<Integer>
Run Code Online (Sandbox Code Playgroud)
至:
class leastPriority implements Comparator<Reservation>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1470 次 |
| 最近记录: |