您的位置:首页 > 汽车 > 时评 > 潍坊seo招聘_上海计算机考试网页制作_企业seo顾问服务阿亮_企业seo自助建站系统

潍坊seo招聘_上海计算机考试网页制作_企业seo顾问服务阿亮_企业seo自助建站系统

2024/12/23 7:10:28 来源:https://blog.csdn.net/weixin_46990523/article/details/144084130  浏览:    关键词:潍坊seo招聘_上海计算机考试网页制作_企业seo顾问服务阿亮_企业seo自助建站系统
潍坊seo招聘_上海计算机考试网页制作_企业seo顾问服务阿亮_企业seo自助建站系统

Java开发中对List< Map< String, Object > >集合去重并按大小拆分子列表

  • 一、使用场景
  • 二、实现步骤
  • 三、相关知识
  • 四、代码示例

一、使用场景

在处理大量List<Map<String, Object>>集合的数据时,为确保数据的唯一性,需要先根据Map的某个唯一标识进行去重,然后将去重后的数据切分成较小的子列表进行分组处理。

二、实现步骤

  1. 去重:通过将列表中的数据转换为Map,利用Map的键唯一性,去除重复的元素。同时,通过保留第一个出现的元素,可以确保数据的顺序。
  2. 切分:将去重后的列表按照指定大小进行切分,方便进行批量处理或分布式处理。

三、相关知识

  1. Java 8 Stream API:提供了一种函数式编程风格的处理集合数据的方式,可以进行过滤、映射、排序、聚合等操作,大大提高了代码的可读性和简洁性。

  2. Collectors工具类:提供了各种收集器,用于对 Stream 中的元素进行收集和汇总操作,如toMaptoList等。

  3. hutool 工具类:使用工具类中的ListUtil.split(list, size)方法,将列表切分为指定大小的子列表。

四、代码示例

public static void main(String[] args) {List<Map<String, Object>> list = new ArrayList<>();list.add(Map.of("id", 1, "date", "2024-01-01"));list.add(Map.of("id", 2, "date", "2024-01-02"));list.add(Map.of("id", 3, "date", "2024-01-03"));list.add(Map.of("id", 3, "date", "2024-01-04"));list.add(Map.of("id", 4, "date", "2024-01-05"));list.add(Map.of("id", 3, "date", "2024-01-06"));list.add(Map.of("id", 5, "date", "2024-01-07"));List<List<Map<String, Object>>> split = getLists(list);System.out.println(split);
}private static List<List<Map<String, Object>>> getLists(List<Map<String, Object>> list) {// 去重List<Map<String, Object>> resultList = new ArrayList<>(list.stream().collect(Collectors.toMap(map -> map.get("id"), // key 为 idmap -> map, // value 为整个 Map(existing, replacement) -> existing, // 如果有重复的 id,保留第一个出现的LinkedHashMap::new // 保持顺序)).values());// 切分为 100 条一组return ListUtil.split(resultList, 100);
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com