如何实现按照List集合中对象某个属性排序

如题所述

给集合排序 ,常见的方法是给集合提供1个比较器Comparator.  


import java.util.*;
class Stu{//学生类
String name;
int age;
public Stu(String name,int age) {
this.name = name;
this.age=age;
}
@Override
public String toString() {
return "姓名:"+name+" 年龄:"+age;
}
}
public class Test {
public static void main(String[] args) {
ArrayList<Stu> list = new ArrayList<Stu>();
list.add(new Stu("jack",12));
list.add(new Stu("lily",13));
list.add(new Stu("lucy",15));
list.add(new Stu("tom",11));

System.out.println(list);
//给集合排序
list.sort(new Comparator<Stu>() {//Comparator 比较器. 需要实现比较方法
@Override
public int compare(Stu o1, Stu o2) {
return o1.age-o2.age;//从小到大 , 如果是o2.age-o1.age 则表示从大到小
}
});
System.out.println(list);
}
}

输出

[姓名:jack 年龄:12, 姓名:lily 年龄:13, 姓名:lucy 年龄:15, 姓名:tom 年龄:11]
[姓名:tom 年龄:11, 姓名:jack 年龄:12, 姓名:lily 年龄:13, 姓名:lucy 年龄:15]

温馨提示:答案为网友推荐,仅供参考