list - 将地图列表标准化为子列表地图
问题描述
这如何在 groovy 中逆转?
IE。
我想转这个:
[ [a:"c", b:"e"], [a:"d",b:"f"] ] -- 列表中可以有更多元素
进入:[a:[“c”,“d”],b:[“e”,“f”]]
解决方案
所以我们可以:
将映射列表融合成一个长列表,其中每个元素都有一个共同的 k/v 结构
然后按key分组
然后我们需要遍历这个新地图,并清理值
这让我们:
def result = [ [a:"c", b:"e"], [a:"d",b:"f"] ]
*.collect { [k: it.key, v: it.value] }
.flatten()
.groupBy { it.k }
.collectEntries { a, b ->
[a, b.v]
}
assert result == [a:['c', 'd'], b:['e', 'f']]
推荐阅读
- ios - 模拟器,应用程序快照可以在不同的应用程序构建之间轻松切换?
- ansible - “与 yum 交谈失败:找不到 repo 的有效 baseurl:remi”
- php - Lumen Illuminate Http 客户端请求无法解析的依赖
- flutter - Modbus TCPIP颤振/飞镖异常错误
- c++ - Docker 使用相同的自定义库构建 cmake 多个容器
- python - 使用 Keras 预测太阳能
- entity-framework-6 - 实体框架调用调用另一个 api 的最佳方式
- c# - VS2019: WF: Add Second Form 不起作用,它尝试添加一个类
- html - XSS 验证:仅检查值是否包含 <> 和 %3C %3E 是否安全
- linux - 呼叫文件星号中的多源号码