栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

List<Map>根据map字段排序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

List<Map>根据map字段排序

从一个list根据指定的map字段进行排序

package yulisao.test;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

import java.util.*;


public class MapListSort {

    public static void main(String[] args) {
        List> list = initMapList();
        sortByFeild(list, "age", "desc");
        System.out.println("按年纪取最大的一条数据,其姓名是:" + list.get(0).get("name"));

    }

    
    private static List> sortByFeild(List> list, String feild, String sortTyp) {
        if (CollectionUtils.isNotEmpty(list)) {
           list.sort((m1, m2) -> {
                if (StringUtils.equals(sortTyp, "desc")) {
                    return String.valueOf(m2.get(feild)).compareTo(String.valueOf(m1.get(feild)));
                } else {
                    return String.valueOf(m1.get(feild)).compareTo(String.valueOf(m2.get(feild)));
                }
            });
            // 或者 Collections类里面的sort方法也是list.sort()与上面一样
            // Collections.sort(list, (m1, m2)-> String.valueOf(m1.get(feild)).compareTo(String.valueOf(m2.get(feild)))); // lamuda排序
        }

        return list;
    }

    private static List> initMapList() {
        List> lists = new ArrayList<>();

        Map map = new HashMap<>();
        map.put("name", "王五");
        map.put("age", 55);
        map.put("mobile", "15900001112");
        lists.add(map);

        Map map1 = new HashMap<>();
        map1.put("name", "李四");
        map1.put("age", 18);
        map1.put("mobile", "15900001111");
        lists.add(map1);

        Map map2 = new HashMap<>();
        map2.put("name", "赵六");
        map2.put("age", 58);
        map2.put("mobile", "13700001111");
        lists.add(map2);

        return lists;
    }
}

这个排序仍是借助jdk包里面的方法实现,同样的如果list的元素类型是字符串、javabean等等, 修改一下compareTo两边要比较的对象即可

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785785.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号