无法调用Collections.sort(arrayList)

时间:2016-03-27 06:44:14

标签: java sorting arraylist

我正在尝试按员工的薪水对对象Employee的arraylist进行排序。我已将所有Employee个对象存储在ArrayList中,并尝试调用Collections.sort(list)但有错误(eclipse)。 请参阅屏幕截图enter image description here

我该怎么办? 我在实现Comparable<>时遇到此错误界面,我已经添加了方法compareTo enter image description here

2 个答案:

答案 0 :(得分:6)

您的班级Employee必须实施Comparable才能使用Collections.sort(),您必须在Employee方法中定义应如何比较compareTo(Employee e)个对象。

所以在你的背景下,它应该是这样的:

public class Employee implements Comparable<Employee> {

    public int compareTo(Employee o) {
        //this is an example. Obviously, you can put whatever you want here 
        return (int)(this.salary-o.salary);
    }
}

答案 1 :(得分:1)

如果要根据属性值对对象进行排序,则必须编写自己的 Comparator 类。例如:

public class MyComparator implements Comparator<Employee> {

   @Override
   public int compare(Employee emp1, Employee emp2) {

     if(emp1.getSalary()>emp2.getSalary())
         return  1;
     else
        return -1;
  }
}

然后使用Collections对列表进行排序。

Collections.sort(allEmployees,new MyComparator());