【发布时间】:2019-06-17 08:17:58
【问题描述】:
我正在尝试想出一种方法来从值列表中生成键。
例如:我有这张地图[ a: [1, 2], b: [1, 3, 4] ]
我想把它转换成[ 1: [a, b], 2: [a], 3: [b], 4: [b] ]
基本上我要求How to transform key/value in Map 的常规版本。
到目前为止,我的解决方案有点过分,因为我收集了所有值并创建了新的值键对:
def m = [ a: [1, 2], b: [1, 3, 4] ]
def transformed = m.collectMany { k, v -> v }.collectEntries { v -> [ v, [] ] }
m.collectMany { k, v -> v.collect { vi -> [ vi, k ] } }.each { v, k ->
transformed[v] += k
}
transformed
有没有更好的方法来实现这种转变?
【问题讨论】:
标签: groovy