【问题标题】:Sort array of objects by object properties [duplicate]按对象属性对对象数组进行排序[重复]
【发布时间】:2016-11-25 03:13:20
【问题描述】:

如何在不使用比较器的情况下通过标记属性对对象数组(即学生对象数组)进行排序?

    class Student
{
    private int rollNo;
    private double marks;
    public Student(int rollNo, String name, double marks) {
        this.rollNo = rollNo;
        this.marks = marks;
    }
}

【问题讨论】:

  • 1) 在 Java 中总是更喜欢列表而不是数组,除非你有充分的理由不这样做; 2) 为什么不使用比较器?
  • 实现排序算法。
  • 看起来像家庭作业
  • 没有比较器,只需编写您自己的排序算法(快速排序、冒泡排序、您的选择),遍历所述对象的数组并直接比较属性并将对象按正确的顺序排列。跨度>

标签: java


【解决方案1】:

如果您想使用标准的 Java sort 实现,请修改 Student 以使其适当地实现 Comparable<Student> ....。然后搜索 Javadocs 以找到对列表进行排序的方法。 (提示:在 javadoc 索引中查找“排序”...)

如果你不能这样做,那么你可能需要从头开始实现一个排序算法。

这应该足以让你开始你的家庭作业:-)

【讨论】:

    【解决方案2】:

    您应该为Student 类创建get()set() 方法。

    然后,您可以遍历 Student 对象数组并使用 get() 进行比较。

    Set and Get Methods in java?

    【讨论】: