【发布时间】:2014-11-10 03:48:38
【问题描述】:
假设我有一个具有属性名称和 id 的学生类。我想使用Collections.sort() 方法以他们各自id的自然顺序对学生的List 进行排序。我可以通过以下两种方式做到这一点:
public class Student implements Comparable<Student> {
private Long id;
private String name;
// getters and setters..
public int compareTo(Student student){
return this.getId().compareTo(student.getId());
}
}
另一种方法是:
public class Student implements Comparable<Long> {
private Long id;
private String name;
// getters and setters..
public int compareTo(Long id){
return this.getId().compareTo(id);
}
}
然后使用Collections.sort()方法对学生列表进行排序。我的问题或困惑是,如果我们使用一个而不是另一个会产生什么不同,因为它们都会产生相同的结果。
【问题讨论】:
-
当您说“它们都产生相同的结果”时,您使用的是
Collections.sort()吗?请向我们展示您的测试代码。 -
@Jason 我测试了我的代码,发现第二种方法在编译时不起作用。它给出了推断的类型 Student 不是有界参数
>。可能是我有点困惑,但应该是学生实现 Comparable 。感谢您的帮助
标签: java sorting collections comparable