我们有一个链表,这个链表的元素是Employee,我想根据Employee的工资对这个链表进行排序,工资是Employee Class的一个成员,我们可以使用Collections.sort()吗?如果没有,我该如何排序呢?有人能解释一下吗?
是的,你可以使用 Collections.sort()
你需要让你的Employee类实现Comparable接口.
http://download.oracle.com/javase/6/docs/api/java/lang/Comparable.html
在您的compareTo()方法中,您将比较当前对象的工资与传入的对象的工资.
编辑:
如果您不希望将其作为默认比较,那么您拥有的另一个选项是创建一个Comparator对象并使用第二个表单 - >Collections.sort(List, Comparator);
它看起来像这样:
class SalaryComparator implements Comparator<Employee>
{
public int compare(Employee e1, Employee e2)
{
if (e1.getSalary() > e2.getSalary())
return 1;
else if (e1.getSalary() < e2.getSalary())
return -1;
else
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
现在你可以这样做: Collections.sort(myEmployeeList, new SalaryComparator());