我有LinkedList对象,其中包含Employee类对象。
public class Employee{
private int empid;
private String name;
private String category;
//Constructors
//Getters and Setters
}
员工类别可能是'SC','NT','OBC','OPEN'。 我想以这样的方式重新排列这个LinkedList:具有'SC'类别的Employee对象首先是具有'NT'类别然后'OBC'然后'OPEN'的对象。
我的要求是:所有具有'SC'类别的对象应该首先出现在LinkedList中,之后具有类别'NT'的对象也应该以其他类别出现。
答案 0 :(得分:1)
由于它看起来像一些值,您可以为Category创建枚举。定义在那里排序的顺序。并使用适当的比较器对集合进行排序,如下所示。
public enum Category {
SC(0),
NT(1),
OBC(2),
OPEN(3);
private final int rank;
private Category(int rank) {
this.rank = rank;
}
/**
* @return the rank
*/
public int getRank() {
return rank;
}
}
Collections.sort(employeeList, new Comparator<Employee>() {
@Override
public int compare(Employee o1, Employee o2) {
return o1.getCategory().getRank() - o2.getCategory().getRank();
}
});