1.许多时候我们得到的List并不是我们最终要输出的,所以我们还需要进行排序,下面自己写代码进行排序
分类一: int属性进行排序
代码:
List<Student> list = new ArrayList<Student>();
//创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中
Student s1 = new Student();
s1.setAge(20);
s1.setName("P02C004194");
Student s2 = new Student();
s2.setAge(19);
s2.setName("P02C003191");
Student s3 = new Student();
s3.setAge(21);
s3.setName("P02C002190");
list.add(s1);
list.add(s2);
list.add(s3);
System.out.println("排序前:"+list);
Collections.sort(list, new Comparator<Student>(){
/*
* int compare(Student o1, Student o2) 返回一个基本类型的整型,
* 返回负数表示:o1 小于o2,
* 返回0 表示:o1和o2相等,
* 返回正数表示:o1大于o2。
*/
public int compare(Student o1, Student o2) {
//按照学生的年龄进行升序排列
if(o1.getAge() > o2.getAge()){
return 1;
}
if(o1.getAge() == o2.getAge()){
return 0;
}
return -1;
}
});
System.out.println("排序后:"+list);
}
}
class Student{
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student [age=" + age + ", name=" + name + "]";
}
}
二、按照String类型进行排序:
其余都不变只是排序方法的修改,
Collections.sort(list, new Comparator<Student>(){
public int compare(Student o1, Student o2) {
//按照学生的姓名进行升序排列
if(o1.getName().compareTo(o2.getName())==0){
return 1;
}else{
return o1.getName().compareTo(o2.getName());
} }
});
按照降序排序:
Collections.sort(list, new Comparator<Student>(){
public int compare(Student o1, Student o2) {
//按照学生的姓名进行降序排列
if(o1.getName().compareTo(o2.getName())==0){
return 1;
}else{
return o2.getName().compareTo(o1.getName());
} }
});