小编典典
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 {
@Override
public int compare(StudentVO o1, StudentVO o2) {
Integer age1 = o1.getAge();
Integer age2 = o2.getAge();
return age1.compareTo(age2);
}
}
class NameComparator implements Comparator {
@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{
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 {
@Override
public int compare(StudentVO o1, StudentVO o2) {
return o1.getName().compareTo(o2.getName());
}
}
然后使用它们,基于进行排序age:
Collections.sort(list);
排序依据name:
Collections.sort(list,new NameComparator());
2020-09-11