java - 如何在 ImmutableMap 中扁平化 ImmutableList
问题描述
比如说,我有一个名为 DomainObject 的类,
class DomainObject {
private Long id;
private String domainParam;
}
我收到的对象列表如下:
(id, domainType) = (1, "A") , (1, "B"), (3, "C"), (4, "A"), (1, "C")
毕竟,我想接收带有 Key(ImmutableList of Id) 和 Pair(Immutable list of domainParam) 的 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));
}
我接近实现一个目标,但我如何才能从这部分平流价值:
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
));
推荐阅读
- python - 比较python中的两个字典列表
- spring-kafka - bootstrap.yml 中的 spring kafka 配置无法工作
- r - 是否可以在没有闪亮会话的情况下使用 renderPlot 的结果?
- facebook-graph-api - 获得广告系列的主要转化
- qt - 用于鼠标选择的具有负宽度的 QML 矩形
- python - 在Python中计算小数点后的位数
- django - IPFS 未完全存储加密文件
- html - 在网络抓取时从儿童类中获取值
- php - PHP 为什么 Else 语句奇怪地不起作用
- firebase - 为什么查询 Firebase 实时数据库需要监听器?