gpt4 book ai didi

java - 如何在 ImmutableMap 中扁平化 ImmutableList

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:30:34 25 4
gpt4 key购买 nike

比如说,我有一个名为 DomainObject 的类,

class DomainObject {

private Long id;
private String domainParam;
}

我收到的对象列表如下:

(id, domainType) = (1, "A") , (1, "B"), (3, "C"), (4, "A"), (1, "C")

毕竟,我想接收带有 Key(Id 的 ImmutableList) 和 Pair(domainParam 的 Immutable 列表) 的 ImmutableMap,例如:

1 [A, B, C]
3 [C]
4 [A]

现在我收到类似的东西:

{[1]=[DomainObject(id=1, domainParam=A), DomainObject(id=1, domainParam=B), DomainObject(id=1, domainParam=B)]}

这不是理想的解决方案。

到目前为止,我的代码如下:


ImmutableMap<ImmutableList<Long>, ImmutableList<DomainObject>> groupedDomainObject(
List<DomainObject> domainObjectList) {

return domainObjectList.stream()
.collect(
Collectors.collectingAndThen(
Collectors.groupingBy(
(domainObject) -> ImmutableList.of(domainObject.getId()),
ImmutableList.<DomainObject>toImmutableList()),
ImmutableMap::copyOf));
}

我即将实现一个目标,但我如何才能从这部分中获得值(value):

ImmutableList.<DomainObject>toImmutableList()

接收唯一没有 DomainObject id 的 domainParam。

如果能得到任何帮助,我将不胜感激。

最佳答案

        ......
.stream()
.collect(Collectors.collectingAndThen(
Collectors.groupingBy(
x -> ImmutableList.of(x.getId()),
Collectors.mapping(
DomainObject::getDomainParam,
ImmutableList.toImmutableList())),
ImmutableMap::copyOf
));

关于java - 如何在 ImmutableMap 中扁平化 ImmutableList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57360533/

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