我需要帮助将Java Generics List传递给Collections.sort()。这是我的代码:
List<MyObject> orgMyObjectList = new ArrayList<MyObject>();
Collections.sort(orgMyObjectList, new Comparable<MyObject>() {
public int compareTo(MyObject another) {
// TODO Auto-generated method stub
return 0;
}
});
但是我在eclipse中遇到了这个编译错误: 类型集合中的方法sort(List,Comparator)不适用于参数(List,new Comparable&lt; MyObject&gt;(){})
你能告诉我如何解决它吗?
答案 0 :(得分:10)
当你想要一个比较器时,你正在传递一个Comparable。
答案 1 :(得分:1)
正如 Fredrik 所说,Collections.sort()
需要Comparator
。做得对应如下:
List orgMyObjectList = new ArrayList(); Collections.sort(orgMyObjectList, new Comparator() { @Override public int compare(MyObject o1, MyObject o2) { // TODO Auto-generated method stub return 0; } });
答案 2 :(得分:0)
是的,有两个问题。一个是如上所述:比较者与可比较者(并且不要忘记等于)
另一个是用// TODO Auto-generated method stub
发帖表明你有很多工作要做。这告诉你需要编写比较操作。
最好从非常简单的事情开始,将此问题提取到您为研究问题而编写的测试/开发程序。