Steam流用法:将list集合中具有相同属性的对象放入到一个新的list

Steam流用法:将list集合中具有相同属性的对象放入到一个新的list

背景:

由于地图打点坐标需求将list数据中经度、纬度和方位角相同的数据,放到一个新的list中去并根据这些相同元素进行分组

解决方案:

采用java8的特性之一Stream方法,使用Stream方法,并且使用Collectors的groupingBy 按照对象的什么属性字段进行分组方法,然后分组出来后得到一个Map集合

java 复制代码
        List<List<NetworkOutputTableVO>> result = new ArrayList<>();

      Map<String, List<NetworkOutputTableVO>> personMap = mapData.stream().collect(Collectors.groupingBy(item -> item.getLatitude()+item.getLongitude()+item.getAzimuth()));
                    Set<Map.Entry<String, List<NetworkOutputTableVO>>> entries2 = personMap.entrySet();
                    for (Map.Entry<String, List<NetworkOutputTableVO>> entry : entries2) {
                        result.add(entry.getValue());
                    }
相关推荐
贾斯汀玛尔斯2 分钟前
每天学一个算法-- 归并排序(Merge Sort)
数据结构·算法·排序算法
小梁努力敲代码3 分钟前
抽奖系统-测试报告
java·功能测试
算法鑫探3 分钟前
算法中的二分法(二分查找)详解及示例
c语言·数据结构·算法·新人首发
澈20716 分钟前
排序算法入门:冒泡、选择、插入排序详解
数据结构·算法·排序算法
devpotato20 分钟前
人工智能(九)- Spring AI MCP客户端开发
java·mcp
John.Lewis26 分钟前
C++加餐课-二叉树:进阶算法
数据结构·c++·算法
疯狂打码的少年28 分钟前
【Day14 Java转Python】从Java到Python——用Python重构一个Java小工具(文件批量重命名实战)
java·python·重构
无籽西瓜a33 分钟前
【西瓜带你学设计模式 | 第十八期 - 命令模式】命令模式 —— 请求封装与撤销实现、优缺点与适用场景
java·后端·设计模式·软件工程·命令模式
aXin_ya36 分钟前
微服务 第二天
java·数据库·微服务
希望永不加班41 分钟前
Spring AOP 核心概念:切面、通知、切点、织入
java·数据库·后端·mysql·spring