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);
相关推荐
小羊没烦恼!10 小时前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里10 小时前
java中的继承和多态的区别
java
小羊没烦恼!10 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕10 小时前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码11 小时前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖11 小时前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时11 小时前
01-06-A-JVM排查实战详解
java·jvm
伞伞悦读11 小时前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
vipxieliang12 小时前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
C语言小火车12 小时前
C/C++ 为什么需要编译器?
开发语言·c++