如何排序LinkedList的一些自然的秩序?

我们有一个链表,此LinkedList的要素是员工,我要作为排序依据雇员的薪水此LinkedList的,工资是Employee类的一个成员,我们可以使用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;
}

}

现在,你可以这样做: Collections.sort(myEmployeeList, new SalaryComparator());

虽然LinkedList<Employee>会的工作,我会使用ArrayList<Employee>此:

List<Employee> employees = new ArrayList<Employee>();

当您填充它(无论哪​​种方式),你可以通过像这样的工资​​排序的:

Collections.sort(employees, new Comparator<Employee>() {
public int compare(Employee e1, Employee e2) {
return e1.getSalary() - e2.getSalary();
}
});

您可以使用Collections.sort()

但是,为了做到这一点,你的Employee类需要首先实现Comparable接口。

一个粗略的例子是:

public class Employee implements Comparable<Employee>
{
public int compareTo(Employee e)
{
return this.salary - e.salary;
}
}

您可以按一个链表,但它不是一个有效的操作,尤其是如果该列表是不是在大小琐碎。 选择合适的数据结构。

分类:java的 时间:2015-03-15 人气:0
本文关键词: Java中,排序
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.089 (s). 10 q(s)