【发布时间】:2015-10-30 13:00:08
【问题描述】:
我正在尝试将项目结束时间从最小值到最大值排序。
我创建了一个名为 Project 的自定义对象列表,并尝试根据访问器返回的值对它们进行排序。我重载了比较函数并收到错误:
Collections 类型中的方法 sort(List, Comparator) 不适用于参数 (Project[], new Comparator(){})
我的主要代码如下所示,感谢所有帮助。
Collections.sort(projectList, new Comparator< Project>(){
@Override
public int compare(Project project1, Project project2)
{
return compareProjects(project1, project2);}
}
);
public static int compareProjects(Project project1, Project project2)
{
if (project1.getEndTime() > project2.getEndTime())
return 1;
else
return 0;
}
和我的项目类:
public Project(int projectNum, int start, int end)
{
this.projectNum = projectNum;
this.start = start;
this.end = end;
this.length = end - start;
}
public static int getEndTime()
{
return end;
}
【问题讨论】:
-
你可以只使用
return project1.getEndTime() - project2.getEndTime()...但问题是什么? -
This 可能会有所帮助
-
is not applicable for the arguments (Project[], new Comparator(){})我很确定你的答案就在那里。Project[]是一个数组,而不是一个列表。
标签: java comparison