gpt4 book ai didi

lambda - 在java中GroupBy并合并到一个列表中

转载 作者:行者123 更新时间:2023-12-02 08:58:01 37 4
gpt4 key购买 nike

Java 8 在 Collectors 中提供了 groupingBy 函数,但它给出了元素的映射。我需要将 map 转换为单个列表。

它也返回结果,但我想要的是对列表本身执行分组操作,这样我就不必重新分配它,因为在 lambda 表达式中不可能重新分配。

我怎样才能实现这个目标?

我想实现这个:

Map<String, List<Node>> nodeListGrouped = nodeList.stream().collect(Collectors.groupingBy(node -> node.getGroupName()));

将nodeListGrouped转换为单个List

但是nodeListGrouped.values()返回Collection(List)

最佳答案

我想这就是你正在寻找的(虽然我还没有编译这个)

List<Node> list = 
nodeList.stream()
.collect(Collectors.collectingAndThen(
Collectors.groupingBy(Node::getGroupName),
map -> map.values()
.stream()
.flatMap(List::stream)
.collect(Collectors.toList())
));

关于lambda - 在java中GroupBy并合并到一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51497686/

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