java object数组如何自定义排序,Java中自定义对象的排序数组

这篇博客讨论了在尝试对项目结束时间进行从小到大排序时遇到的问题。作者在使用Collections.sort方法时遇到了类型不匹配的错误,原因是试图对数组而非列表进行排序。解决方案是让Project类实现Comparable接口,并重写compareTo方法,然后使用Arrays.sort进行排序。这将允许直接比较Project对象,而无需额外的比较器。
摘要由CSDN通过智能技术生成

I am trying to sort the Project end times from smallest to largest values.

I have created a list of custom objects called Project and am attempting to sort them based on a value returned by an accessor. I have overloaded the compare function and am receiving the error:

The method sort(List, Comparator) in the type Collections is not applicable for the arguments (Project[], new Comparator(){})

The code from my main is shown below, any and all help appreciated.

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;

}

and my Project Class:

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;

}

解决方案

Collections.sort operates on a List, and Arrays.sort operates on an array

Need to changes Project.class , implement Comparable interface

class Project implements Comparable {

@Override

public int compareTo(Project o) {

if (this.getEndTime() > o.getEndTime())

return 1;

else

return 0;

}

}

Then in your main.class

Arrays.sort(projectList);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值