需要向Collections.sort()传递Java泛型方面的帮助
我需要帮助将Java泛型列表传递给Collections.sort()。这是我的密码:需要向Collections.sort()传递Java泛型方面的帮助,java,generics,Java,Generics,我需要帮助将Java泛型列表传递给Collections.sort()。这是我的密码: List<MyObject> orgMyObjectList = new ArrayList<MyObject>(); Collections.sort(orgMyObjectList, new Comparable<MyObject>() { public int compareTo(MyObject another) { //
List<MyObject> orgMyObjectList = new ArrayList<MyObject>();
Collections.sort(orgMyObjectList, new Comparable<MyObject>() {
public int compareTo(MyObject another) {
// TODO Auto-generated method stub
return 0;
}
});
List orgMyObjectList=new ArrayList();
Collections.sort(orgMyObjectList,new Compariable(){
公共整数比较(MyObject另一个){
//TODO自动生成的方法存根
返回0;
}
});
但我在eclipse中遇到了以下编译器错误:
类型集合中的方法排序(List,Comparator)不适用于参数(List,newcomparable您能告诉我如何修复它吗?当它需要一个比较器时,您正在传递一个Comparable。正如Fredrik所说,
Collections.sort()
需要一个比较器。使其正确看起来像这样:
List orgMyObjectList = new ArrayList();
Collections.sort(orgMyObjectList, new Comparator() {
@Override
public int compare(MyObject o1, MyObject o2) {
// TODO Auto-generated method stub
return 0;
}
});
List orgMyObjectList=新建ArrayList();
Collections.sort(orgMyObjectList,new Comparator(){
@凌驾
公共整数比较(MyObject o1,MyObject o2){
//TODO自动生成的方法存根
返回0;
}
});
是的,有两个问题。一个是值得注意的:比较器vs Compariable(不要忘记相等)
另一个是使用//TODO自动生成的方法存根发布,这表明您有很多工作要做。这意味着您需要编写比较操作
最好从非常简单的事情开始,将这个问题拉到一个测试/开发程序中,您编写这个程序只是为了研究这个问题