我对Scala很新,因此这可能是一个非常基本的问题。
我有一个类型为Array [(String,Array [String])]的变量“myArray”。该数组的值是
Array((1,Array(2, 3, 4)), (2,Array(1, 3, 4, 6, 7)), (3,Array(1, 2, 4, 5))).
如果我们认为每个元组的第一个元素是一个键(例如,在元组中(1,数组(2,3,4)),1是键),rest是值(例如,数组(2) ,3,4)),我想创建一个数组,其元素将是每个对应键的键值对的所有可能组合,其中值将是数组的每个元素[String]
结果应该是
Array((1,Array(1,2)), (1,Array(1,3)), (1,Array(1,4)), (2,Array(2,1)),
(2,Array(2,3)), (2,Array(2,4)), ...., (3,Array(3,4)), (3,Array(3,5)))
答案 0 :(得分:2)
@wingedsubmariner已关闭,但为了匹配@ user3658637的奇怪要求,映射是:
for {
(key, values) <- array
value <- values
yield (key,Array(key, value)) //> res1: Array[(Int, Array[Int])] = Array((1,Array(1, 2)), (1,Array(1, 3)), (1,
//| Array(1, 4)), (2,Array(2, 1)), (2,Array(2, 3)), (2,Array(2, 4)), (2,Array(2,
//| 6)), (2,Array(2, 7)), (3,Array(3, 1)), (3,Array(3, 2)), (3,Array(3, 4)), (3
//| ,Array(3, 5)))
答案 1 :(得分:1)
如果您的数组的值为array
:
for {
(key, values) <- array
value <- values
} yield (key, value)