2
隨着groovy我想在列表(不同大小)列表轉置。groovy轉置二維數組不同的大小
def mtrx = [
[1,2,3],
[4,5,6,7]
]
預期的結果:
[[1,4],[2,5],[3,6],[null,7]]
或
[[1,4],[2,5],[3,6],[7]]
方法.transpose()正在爲相等大小的工作正常,但對於不等於 - 一些元件切斷。
我的代碼是:
def max = 0
def map = [:]
def mapFinal = [:]
def row = 0
def mtrx = [
[1,2,3],
[4,5,6,7]
]
mtrx.each{it->
println it.size()
if(max < it.size()){
max = it.size()
}
}
def transposed = mtrx.each{it->
println it
it.eachWithIndex{it1, index->
println it1 + ' row ' + row + ' column ' +index
mapFinal[row+''+index] = it1
map[index+''+row] = it1
}
row++
}
println map
println mapFinal
非常感謝你:) Groovy的 - 從來沒有停止給我帶來驚喜 - 簡而言之,Groovy和工作。現在我將嘗試理解它是如何工作的(1)通過mtrx * .size()。max()(2)從max迭代到max(3)結合閉包和展開運算符來獲取列中的每個元素。 – Vanko