如何在某些自然顺序上对链表进行排序?

4 java sorting

我们有一个链表,这个链表的元素是Employee,我想根据Employee的工资对这个链表进行排序,工资是Employee Class的一个成员,我们可以使用Collections.sort()吗?如果没有,我该如何排序呢?有人能解释一下吗?

Bri*_*ach 6

是的,你可以使用 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());