List<Object>排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了List<Object>排序相关的知识,希望对你有一定的参考价值。
参考技术A List<Object>排序需求是根据一个对象的list中的某个字段的值排序,比如根据列表中人的年龄排序:
在实体类中继承Comparable接口并重写compareTo()方法,方法里是自己需求比较的函数,可以根据自己的需求去写。
package com.example.Test;
/**
*/
public class TestObj implements Comparable<TestObj>
然后调用Collections.sort(list)进行排序
@Test
public void testListSort()
List<TestObj> list = new ArrayList<>();
输出结果
TestObj [id=3, name=王五, age=12]
TestObj [id=1, name=张三, age=16]
TestObj [id=2, name=李四, age=20]
TestObj [id=4, name=赵六, age=24]
对list中的多个map按某个属性的值排序,null值放到最后
//给aqi升序排,null放到最后 Collections.sort(list,new Comparator<Map<String,Object>>() { @Override public int compare(Map<String, Object> o1, Map<String, Object> o2) { if (o1.get("aqi") != null && o2.get("aqi") != null) { return o1.get("aqi").toString().compareTo( o2.get("aqi").toString()); } else { return o1.get("aqi") == null ? 1 : -1; } } });
以上是关于List<Object>排序的主要内容,如果未能解决你的问题,请参考以下文章
对List<Map<String,Object>> 进行排序
Java List<Object> 根据Object中channelTime字段从小到大排序,并输出最终的List<Object>