我正在尝试按员工的薪水对对象Employee
的arraylist进行排序。我已将所有Employee
个对象存储在ArrayList
中,并尝试调用Collections.sort(list)
但有错误(eclipse)。
请参阅屏幕截图
答案 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());