
1)您应该编写两个用于分别对年龄和名称进行排序的比较器,然后使用Collections.sort(List,Comparator)。像这样:
class StudentVO { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}class AgeComparator implements Comparator<StudentVO> {@Overridepublic int compare(StudentVO o1, StudentVO o2) { Integer age1 = o1.getAge(); Integer age2 = o2.getAge(); return age1.compareTo(age2); }}class NameComparator implements Comparator<StudentVO> { @Override public int compare(StudentVO o1, StudentVO o2) { return o1.getName().compareTo(o2.getName()); }}然后使用它们,基于进行排序
age:
Collections.sort(list,new AgeComparator());
排序依据
name:
Collections.sort(list,new NameComparator());
2)如果您认为
Listof
StudentVO具有某种自然的排序顺序,请说假设按by排序
age。然后,将Comparable用于
age和
Comparator用于
name。
class StudentVO implements Comparable<StudentVO>{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int compareTo(StudentVO o) { return ((Integer)getAge()).compareTo(o.getAge()); }}class NameComparator implements Comparator<StudentVO> { @Override public int compare(StudentVO o1, StudentVO o2) { return o1.getName().compareTo(o2.getName()); } }然后使用它们,基于进行排序
age:
Collections.sort(list);
排序依据
name:
Collections.sort(list,new NameComparator());
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)