gpt4 book ai didi

java - 展平 map 中的列表列表

转载 作者:行者123 更新时间:2023-12-03 02:24:33 30 4
gpt4 key购买 nike

我有一个订单流(来源是订单列表)。每个订单都有一个 Customer 和一个 OrderLine 列表。

我想要实现的是拥有一个以客户为键的 map ,以及属于该客户的所有订单行,在一个简单的列表中作为值。

我现在管理的内容返回给我 Map<Customer>, List<Set<OrderLine>>> ,通过执行以下操作:

orders
.collect(
Collectors.groupingBy(
Order::getCustomer,
Collectors.mapping(Order::getOrderLines, Collectors.toList())
)
);

我要么想要一个Map<Customer, List<OrderLine>>直接来自订单流,或者通过某种方式展平 Map<Customer>, List<Set<OrderLine>>> 流中的列表。我上面得到的。

最佳答案

您可以简单地使用Collectors.toMap

类似于

    orders
.stream()
.collect(Collectors
.toMap(Order::getCustomer
, Order::getOrderLines
, (v1, v2) -> { List<OrderLine> temp = new ArrayList<>(v1);
temp.addAll(v2);
return temp;});

toMap 函数的第三个参数是合并函数。如果您没有明确提供它并且存在重复的键,那么它将在完成操作时抛出错误。

关于java - 展平 map 中的列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56049710/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com