我正在研究现有的代码。在代码中,将创建一个对象列表,然后在此列表上使用Collections.sort和Collections.reverse。
下面是一个他们希望可以比较的类的一个小例子:
public class Student implements Comparable<Student> {
public int compareTo(Student s) {
//code comparing the instance's score to parameter score
}
}该列表为“学生”类型,输出是按分数降序排列的对象。让一个实例了解其自身的另一个实例是好的还是坏的做法?
我的问题是使用类似的方法,是否有更好的方法来完成他们想要达到的目标?
编辑:仍然习惯于向别人解释我的问题。我还是个学生,所以谢谢你的提示。
发布于 2015-03-02 14:32:50
描述现有代码的方式反映了这种情况下的最佳实践。这就是compareTo应该如何工作的。您可以提供比较器的外部实现,但这里没有充分的理由这样做。
发布于 2015-03-02 14:31:56
另一种可能的方法是实现比较器,并将其作为参数提供给Collection.sort方法。与此类似:
Comparator<Integer> comparator = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
};
Collections.sort(yourList, comparator); 其中yourList是List<Integer> yourList = new ArrayList<>();
https://stackoverflow.com/questions/28812124
复制相似问题