我必须订购一个集合,然后使用一个比较器
import java.util.*;
public class OpereComparatorAuthor implements Comparator<Opera>{
public int compare(Opera left,Opera right){
return left.getArtist().compareTo(right.getArtist());
}
}
但是当我从另一个班级叫它时:
Collections.sort(ordbyauthor,OpereComparatorAuthor);
我收到此错误:
cannot find symbol
symbol : variable OpereComparatorAuthor
location: class Museo
Collections.sort(ordbyauthor,OpereComparatorAuthor);
为什么?
最佳答案
您必须传递比较器的对象:
Collections.sort(ordbyauthor, new OpereComparatorAuthor());
更新:
这只是一个建议。在这种情况下,可以使用匿名类(我认为这是一个不错的选择),而不是定义类。
例如
//I am using Sala here instead of Opera as per your comment
Collections.sort(ordbyauthor, new Comparator<Sala>(){
@Override
public int compare(Sala left, Sala right) {
//do your comparision here according to your requirement
//then return the result
}
});