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);
相关推荐
任风雨2 小时前
13.2.3.Tomcat
java·tomcat
qq_336313935 小时前
java基础-字符串
java
纵有疾風起5 小时前
C++—string(1):string类的学习与使用
开发语言·c++·经验分享·学习·开源·1024程序员节
Molesidy5 小时前
【随笔】【QT】QT5.15.2版本的最新下载方式!!!
开发语言·qt
二进制person6 小时前
Java EE初阶 --多线程2
java·开发语言
yue0086 小时前
C#理论学习-WinForm实践开发教程总结
开发语言·学习·c#
007php0077 小时前
某游戏大厂 Java 面试题深度解析(四)
java·开发语言·python·面试·职场和发展·golang·php
Mr.Jessy7 小时前
Web APIs学习第一天:获取 DOM 对象
开发语言·前端·javascript·学习·html
午安~婉7 小时前
javaScript八股问题
开发语言·javascript·原型模式
想不明白的过度思考者7 小时前
Rust——异步递归深度指南:从问题到解决方案
开发语言·后端·rust