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());
                    }
相关推荐
未来转换5 分钟前
基于A2A协议的生产应用实践指南(Java)
java·开发语言·算法·agent
后端漫漫13 分钟前
Redis 配置文件与服务功能
java·redis
Dwzun14 分钟前
基于Java+SpringBoot+Vue的校园二手物品置换系统设计与实现【附源码+文档+部署视频+讲解】
java·开发语言·spring boot
polaris063019 分钟前
Spring Boot 项目开发流程全解析
java·spring boot·log4j
谭欣辰20 分钟前
AC自动机:多模式匹配的高效利器
数据结构·c++·算法
zuowei288930 分钟前
spring实例化对象的几种方式(使用XML配置文件)
xml·java·spring
C、空白格31 分钟前
Java集成Vosk实现离线语音识别
java·开发语言·语音识别
阿巴斯甜38 分钟前
preProcessHandler: (AppException) -> Boolean用法:
java
历程里程碑42 分钟前
MySQL事务深度解析:ACID到MVCC实战+万字长文解析
开发语言·数据结构·数据库·c++·sql·mysql·排序算法
Lyyaoo.1 小时前
【JAVA基础面经】native方法
java·开发语言