用Java对对象数组进行排序

san*_*osh 2 java sorting

我正在编写一个报告模块,显示花费的时间和任务数量.这些值在Java Bean中设置,bean对象存储在一个数组中.我使用单独的查询来获取任务的时间和数量.现在我必须根据任务的时间和数量对数组进行排序.下面的代码仅比较字符串:

if (!list.isEmpty()) {
    Collections.sort(list, new Comparator<Project>() {
        @Override
        public int compare(Project p1, Project p2) {

            return p1.getName().compare(p2.getName());
        }
       });
   }
Run Code Online (Sandbox Code Playgroud)

我在排序存储在数组中的JavaBean中的属性的整数值时遇到问题.非常感谢任何帮助.

jlo*_*rdo 5

在下面的评论中,您说的是:

Project[] array = new Project[3];
Run Code Online (Sandbox Code Playgroud)

如果我是你,我会宣布Project

public class Project implements Comparable<Project> {

    @Override
    public int compareTo(Project other) {
        return this.id - other.id; // or whatever property you want to sort
    }
Run Code Online (Sandbox Code Playgroud)

然后,您只需调用即可对数组进行排序

Arrays.sort(array);
Run Code Online (Sandbox Code Playgroud)

如果您不希望您的类实现该Comparable接口,您可以将比较器传递给Arrays.sort():

    Arrays.sort(array, new Comparator<Project>() {
        @Override
        public int compare(Project o1, Project o2) {
            return o1.id - o2.id; // or whatever property you want to sort
        }
    });
Run Code Online (Sandbox Code Playgroud)

我使用了一个匿名的,如果需要,你也可以将它提取到它自己的类中.