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);
相关推荐
ling__i5 分钟前
java day18
java·开发语言
矛取矛求5 分钟前
日期类的实现
开发语言·c++·算法
非ban必选6 分钟前
netty-scoket.io路径配置
java·服务器·前端
大翻哥哥17 分钟前
Python 2025:AI工程化与智能代理开发实战
开发语言·人工智能·python
在下雨59935 分钟前
项目讲解1
开发语言·数据结构·c++·算法·单例模式
再努力"亿"点点38 分钟前
Sklearn(机器学习)实战:鸢尾花数据集处理技巧
开发语言·python
渣哥1 小时前
我和Java 8 Stream相爱相杀的那些年
java
爱吃烤鸡翅的酸菜鱼1 小时前
【Spring】原理解析:Spring Boot 自动配置
java·spring boot
小白兔3531 小时前
一文讲通Unicode规范、UTF-8与UTF-16编码及在Java中的验证
java
十八旬1 小时前
苍穹外卖项目实战(day7-1)-缓存菜品和缓存套餐功能-记录实战教程、问题的解决方法以及完整代码
java·数据库·spring boot·redis·缓存·spring cache