java - 找不到比较器

标签 java comparator

我必须订购一个集合并且我使用了一个比较器

import java.util.*;

public class OpereComparatorAuthor implements Comparator<Opera>{

    public int compare(Opera left,Opera right){     
        return left.getArtist().compareTo(right.getArtist());
    }
} 

但是当我从另一个类(class)调用它时:

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
    }
});

关于java - 找不到比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8525808/

相关文章:

java - 构造函数未初始化 Scanner 对象

java - 如何对 ArrayList(不是数组)的列表进行排序?

java - 按(区分大小写)字母顺序对字符串进行排序的简单方法

java - Java 8 中的比较器

java - 当我尝试运行 JFrame 时,为什么会收到 NullPointerException?

java - 为什么Java内部类需要 "final"外部实例变量?

java - 我正在 hibernate 状态下保存一个实体。它正在更新同一语句中已保存的数据。如何解决这个问题?

java - Android- Dexopt 错误

python - Python 中的整数比较

Java - 比较器来搜索子字符串