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);
相关推荐
亦暖筑序7 小时前
Java 8老系统AI Workflow实战:把一次性AI对话升级成可恢复工作流
java·后端
敲代码的彭于晏8 小时前
Bean 生命周期完全图解:前端同学也能看懂的 Spring 核心机制
java·前端·后端
plainGeekDev9 小时前
ButterKnife → ViewBinding
android·java·kotlin
像我这样帅的人丶你还1 天前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩1 天前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构
tntxia1 天前
Mybatis的日志输入
java
亦暖筑序1 天前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
用户298698530141 天前
Java 实现 Word 文档加密与权限解除
java·后端
Yeats_Liao1 天前
14:Servlet中的页面跳转-Java Web
java·后端·架构
未秃头的程序猿1 天前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试