如何实现按照List集合中对象某个属性排序
发布网友
发布时间:2022-05-02 09:58
我来回答
共1个回答
热心网友
时间:2022-04-25 05:02
给集合排序 ,常见的方法是给集合提供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]