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());
                    }
相关推荐
haiyangyiba18 分钟前
修改jar包中class的包路径
java·jar·修改class·修改class中包路径
雨落在了我的手上1 小时前
初识java(七):Java调试案例讲解
java·intellij-idea·集成开发环境调试功能
Volunteer Technology1 小时前
Spring AI MCP 案例-WebFlux SSE传输模式 (九)
java·数据库·人工智能·spring
rabbit_pro1 小时前
SpringBoot3集成Langchain4j使用Ollama
java·开发语言
-To be number.wan1 小时前
为什么关系数据库主要采用b+树、散列表来构建索引
数据结构·b树·散列表·数据库系统
解决问题no解决代码问题1 小时前
JAVA GC
java·开发语言·jvm
澈2071 小时前
滑动窗口算法:双指针高效解题秘籍
数据结构·c++·算法
小程故事多_802 小时前
Agent Loop 核心突破,上下文压缩四大流派,重新定义窗口资源利用率
java·开发语言·人工智能
如竟没有火炬2 小时前
字符串相乘——int数组转字符串
开发语言·数据结构·python·算法·leetcode·深度优先
神仙别闹2 小时前
基于Java+MySQL实现(GUI)医院管理系统
java·mysql·oracle