我想对 Emp
的列表进行排序基于marks
按升序排列的对象字段。
List<Emp> emp= new ArrayList<Emp>();
public class Emp implements Serializable {
private String empname;
private String section;
private int empId;
private int marks;
...
最佳答案
您需要编写一个比较器,否则 Sort 方法会假设您在排序时要使用哪些字段。
Collections.sort(emp, new Comparator<Emp>() { public int compare(Emp one, Emp two) {
return one.marks.compareTo(two.marks);
});
在我的示例中,我将字段标记视为公共(public)字段,如果您愿意,请将 one.marks 替换为 getter。
此外,由于您使用的整数没有compareTo,因此请这样做:
Collections.sort(list, new Comparator<Emp>() {
public int compare(Emp one, Emp two) {
int cmp = one.getMarks() > two.getMarks() ? +1 : one.getMarks() < two.getMarks() ? -1 : 0;
return cmp;
}
});
关于java - 对java中的对象列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26645343/