flatMap使用场景

1,java8 把多个list合并为一个list

复制代码
List<String> allWayBill = Stream.of(list1, list2, list3).flatMap(Collection::stream).collect(Collectors.toList());

2,处理List<List<Object>> list嵌套,取Object中某熟悉

复制代码
Map<String, List<User>> userMap;
复制代码
List<String> usreNames = userMap.values().stream().flatMap(Collection::stream).map(User::getUserName).distinct().collect(Collectors.toList());

3,List<Object>

门店商品对应多个库存地点,匹配库存地点,如果匹配多个,取第一个

复制代码
List<ResShopProductStockVO.Detail> details = productStockMap.get(value.getLocationCode() + value.getProductCode());
double repertory = Optional.ofNullable(details).flatMap(stock -> stock.stream().filter(v -> Objects.equals(v
        .getStorage(), value.getSendStockLocation())).findFirst()).map(stock -> stock.getRepertory()).orElse(0d);
相关推荐
码云数智-大飞12 分钟前
C++ RAII机制:资源管理的“自动化”哲学
java·服务器·php
2601_9498165816 分钟前
Spring+Quartz实现定时任务的配置方法
java
白毛大侠34 分钟前
理解 Go 接口:eface 与 iface 的区别及动态性解析
开发语言·网络·golang
李昊哲小课1 小时前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl
Hou'1 小时前
从0到1的C语言传奇之路
c语言·开发语言
不知名的老吴1 小时前
返回None还是空集合?防御式编程的关键细节
开发语言·python
计算机毕设指导61 小时前
基于SpringBoot校园学生健康监测管理系统【源码文末联系】
java·spring boot·后端·spring·tomcat·maven·intellij-idea
mysuking1 小时前
springboot与springcloud对应版本
java·spring boot·spring cloud
希望永不加班1 小时前
SpringBoot 数据库连接池配置(HikariCP)最佳实践
java·数据库·spring boot·后端·spring
迈巴赫车主1 小时前
蓝桥杯3500阶乘求和java
java·开发语言·数据结构·职场和发展·蓝桥杯