algorithm - 在 Groovy 中转置一个困难的矩阵

标签 algorithm collections groovy

如何转置

u2:[g2,g3], u3:[g1,g2,g3], u1:[g1,g2]

进入

g1:[u1,u3], g2:[u1,u2,u3], g3:[u2,u3]

在 Groovy 中。

最佳答案

通过使用injectwithDefault:

def map = [u2:['g2','g3'], u3:['g1','g2','g3'], u1:['g1','g2']]

assert map.inject([:].withDefault{ [] }) { newMap, k, v -> 
    v.collect { newMap[it] << k }     
    newMap
} == ['g2':['u2', 'u3', 'u1'], 'g3':['u2', 'u3'], 'g1':['u3', 'u1']]

关于algorithm - 在 Groovy 中转置一个困难的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24877865/

相关文章:

algorithm - 像 XTerm 中那样进行调色板转换

java - 在不将它们存储到内存中的情况下一一获得组合的算法

c++ - 给定一个数组和整数 k 在每个大小为 k 的子数组中找到最大值

java - 类型 T 不是通用的;它不能用参数 <?> 泛型函数中的错误进行参数化

algorithm - tinyAVR : How can one multiply by 203, 171,还是 173 真的快?

java - Java Set并发修改异常

java - 写时复制和比较然后交换之间的区别?

java - 在Micronaut的声明式客户端中传递自定义 header

jenkins - 非法参数异常 : Expected named arguments (Jenkins)

grails - 将用户对象保存到另一个对象