首页 > 其他分享 >使用Stream流实现以List<Map<String, Object>>集合中Map的key值进行排序

使用Stream流实现以List<Map<String, Object>>集合中Map的key值进行排序

时间:2023-01-11 16:58:27浏览次数:40  
标签:Map Stream map List list map1 toString id

使用Stream流实现以List<Map<String, Object>>集合中Map的key值进行排序

创建一个list存入数据
        List<Map<String, Object>> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", i);
            map.put("name", "张三" + i);
            list.add(map);
        }

用id来作比较:

//升序排列
list = list.stream().sorted((map1, map2) -> {
            return Integer.valueOf(map1.get("id").toString()).compareTo(Integer.valueOf(map2.get("id").toString()));
        }).collect(Collectors.toList());

降序排列仅是返回时交换map1,2前后位置

//降序排列
list = list.stream().sorted((map1, map2) -> {
            return Integer.valueOf(map2.get("id").toString()).compareTo(Integer.valueOf(map1.get("id").toString()));
        }).collect(Collectors.toList());

由于map的value值类型是Object,所有要注意在使用比较器的时候如果以整数类型作比较的话需要转成Integer类型。

        List<Map<String, Object>> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", i);
            map.put("name", "张三" + i);
            list.add(map);
        }
        for (int i = 11; i < 20; i++) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", i);
            map.put("name", "张三" + i);
            list.add(map);
        }
        list = list.stream().sorted((map1, map2) -> {
            return map1.get("id").toString().compareTo(map2.get("id").toString());
        }).collect(Collectors.toList());
        list.forEach(map -> {
            System.out.println(map.toString());
        });

标签:Map,Stream,map,List,list,map1,toString,id
From: https://www.cnblogs.com/ComfortableM/p/17044225.html

相关文章

  • WPF使用WriteableBitmap更新图像
     <Windowx:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.c......
  • CF850B Arpa and a list of numbers 题解 枚举
    题目链接:https://codeforces.com/problemset/problem/850/B题目大意我们定义一个数列是”坏的数列”当且仅当这个数列不为空且数列中所有元素的最大公约数为\(1\)。......
  • sqli-labs 靶场使用 SQLMap 注入
    注意点:sqlmap需要python的环境,并配置环境变量在实际检测过程中,sqlmap会不停的询问,需要手工输入Y/N来进行下一步操作,可以使用参数--batch命令来自动答复和判断......
  • ibatis 结果集 resultMap不匹配
    ibatis检索结果集跟 resultMap里面不匹配时,有两种情况 1,检索结果集比 resultMap里面定义的列多,这时程序正常执行没有问题2, resultMap里面定义的列比检索结果集多,这......
  • ImmutableMap
    创建map的同时赋值Map<Boolean,Consumer<ProcessContext<NotificationModel>>>actionMap=newImmutableMap.Builder<Boolean,Consumer<ProcessContext<Notificat......
  • MapUtil简单使用
    1maven <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.11</version>......
  • Binding to List Data 绑定到列表数据
    得到当前项1voidbirthdayButton_Click(objectsender,RoutedEventArgse){2//Getthecurrentpersonoutofthecollectionview3Peoplepeople=(People......
  • React练习实例-TodoList
    目标顶部输入框中输入任务(字符串),敲击回车键后,中间新出现一个代办项鼠标放在单个代办项,右侧出现删除按钮,点击删除代办项选中多个代办项,点击右下角“清除已完成”按钮,删......
  • URP自带的Tone mapping性能开销问题
    1)URP自带的Tonemapping性能开销问题​2)图集中未使用到Sprite也会被加载到内存中的问题3)GPU带宽:从纹理出发优化带宽①4)GPU带宽:从纹理出发优化带宽②5)GPU带宽:从纹理出发优化......
  • Visual Paradigm 顾客旅程地图 (Customer Journey Map)
    (illustratedbyVisualParadigm) 若您是拥有十万会员数的企业,1%的不满意度代表有一千人不满于服务,在现今的网络世界里,这一千人可能会带来严重的客户抱怨与无法预期的企业......