首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Comparable<Object>?

使用Comparable<Object>?
EN

Stack Overflow用户
提问于 2015-03-02 14:23:52
回答 2查看 163关注 0票数 1

我正在研究现有的代码。在代码中,将创建一个对象列表,然后在此列表上使用Collections.sort和Collections.reverse。

下面是一个他们希望可以比较的类的一个小例子:

代码语言:javascript
复制
public class Student implements Comparable<Student> {
    public int compareTo(Student s) {
        //code comparing the instance's score to parameter score
    }
}

该列表为“学生”类型,输出是按分数降序排列的对象。让一个实例了解其自身的另一个实例是好的还是坏的做法?

我的问题是使用类似的方法,是否有更好的方法来完成他们想要达到的目标?

编辑:仍然习惯于向别人解释我的问题。我还是个学生,所以谢谢你的提示。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-02 14:32:50

描述现有代码的方式反映了这种情况下的最佳实践。这就是compareTo应该如何工作的。您可以提供比较器的外部实现,但这里没有充分的理由这样做。

票数 0
EN

Stack Overflow用户

发布于 2015-03-02 14:31:56

另一种可能的方法是实现比较器,并将其作为参数提供给Collection.sort方法。与此类似:

代码语言:javascript
复制
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<>();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28812124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档