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>

list中依据map&lt;String,Object&gt;的某个值排序

对list中map中的key值进行排序

Java8之集合排序

Java8之集合排序