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

 我来答
雪飞潇潇
2017-10-02 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:869万
展开全部

给集合排序 ,常见的方法是给集合提供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]
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式