我想通过它的id对对象列表进行排序。这里是我的代码:Collections.sort不排序我的对象列表
List<Employee> employee = getEmployeeList();
Collections.sort(employee, new Comparator<Employee>(){
@Override
public int compare(Employee employee1, Employee employee2) {
return employee1.getEmployeeId().compareTo(employee2.getEmployeeId());
}
});
但是排序后没有任何反应,它仍然显示原来的员工名单。难道我做错了什么?我到处搜索,但他们都只是这样做,它适用于他们。这里是员工ID的硬编码集合:
public class Employee{
private String employeeId = "";
private String employeeName = "";
private String contactNbr = "";
//getters and setters
}
List<Employee> empList = new ArrayList<Employee>();
Employee emp1 = new Employee();
emp1.setEmployeeId("A1B1");
empList.add(emp1);
Employee emp2 = new Employee();
emp2.setEmployeeId("A2B1");
empList.add(emp2);
Employee emp3 = new Employee();
emp3.setEmployeeId("A3B1");
empList.add(emp3);
Collections.sort(empList, new Comparator<Employee>(){
@Override
public int compare(Employee employee1, Employee employee2) {
return employee1.getEmployeeId().compareTo(employee2.getEmployeeId());
}
});
什么类型getEmployeeId是否返回?是已经排序开始的列表。 – BevynQ
您是否尝试创建列表的副本,并对副本进行排序并保留原始副本?看起来你在这里做的是对原始列表进行排序。 –
请发布[SSCCE](http://sscce.org/)。 –