Java教程

Java 中, 对形如 List<Map<String, Object>> 中的 Map 指定的某个 key 值进行排序(此处以 age 排序)

本文主要是介绍Java 中, 对形如 List<Map<String, Object>> 中的 Map 指定的某个 key 值进行排序(此处以 age 排序),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

构建数据:

 List<Map<String, Object>> list = new ArrayList<>();
        Map<String, Object> map1 = new HashMap<>();
        map1.put("name", "李四");
        map1.put("age", 23);
        map1.put("wight", 74);
        list.add(map1);

        Map<String, Object> map2 = new HashMap<>();
        map2.put("name", "李四老婆");
        map2.put("age", 31);
        map2.put("wight", 65);
        list.add(map2);

        Map<String, Object> map3 = new HashMap<>();
        map3.put("name", "李四表哥");
        map3.put("age", 27);
        map3.put("wight", 53);
        list.add(map3);

        Map<String, Object> map4 = new HashMap<>();
        map4.put("name", "李四妈妈");
        map4.put("age", 57);
        map4.put("wight", 49);
        list.add(map4);
        System.out.println("  排序前:");
        System.out.println(list);

 构建数据为:

此例以 age 排序 

升序方法1:

 System.out.println("\n  升序排(方法1)");
        List<Map<String, Object>> ascList = list.stream().sorted(Comparator.comparing(map -> map.get("age").toString())).collect(Collectors.toList());
        System.out.println(ascList);

 

 

 

构建排序字段库

/**
 * 自定义排序字段库
 */
class MapSortFieldFactory{
    public static Integer getMapValueByAge(Map<String, Object> map){
        return (Integer) map.get("age");
    }

}

升序方法2:

 System.out.println("\n 升序排(方法2)");
        List<Map<String, Object>> ascList2 = list.stream().sorted(Comparator.comparing(MapSortFieldFactory::getMapValueByAge)).collect(Collectors.toList());
        System.out.println(ascList2);

 

 

降序:

 System.out.println("\n  降序排");
        List<Map<String, Object>> descList = list.stream().sorted(Comparator.comparing(MapSortFieldFactory::getMapValueByAge).reversed()).collect(Collectors.toList());
        System.out.println(descList);

 

 

 

 

 

这篇关于Java 中, 对形如 List<Map<String, Object>> 中的 Map 指定的某个 key 值进行排序(此处以 age 排序)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!