2015-12-07 47 views
1

我有2個陣列Array[(Int, Int)],和Array[(Int, List[String])], 爲例子對兩個陣列:合併基於第一元件

(1, 2) and (1, (123, 456, 789)) 
    (2, 8) and (2, (678, 1000)) 
    (3, 4) and (3, (587, 923, 168, 392)) 

我想這兩個數組合併成一個Array [(Int, List[String], Int)]這樣的:

(1, (123, 456, 789), 2) 
    (2, (678, 1000), 8) 
    (3, (587, 923, 168, 392), 4) 

並希望scala仍然認識到第二個元素是List[String], 我試過很多方法可以將這2個映射或數組結合起來,但是無法實現第二個元素是一個List[String],合併後,它將第二個元素視爲AnySome,並且無法遍歷它。

+0

你想用'join'或用'zip'合併?看起來好像它可以用你的榜樣任何一種方式。你試過什麼了? –

+0

爲了獲得更多有用的回覆,我建議你包括你的嘗試(即**代碼示例**)來解決它。 –

回答

3

我找到了解決辦法:

array1.zip(array2).map { 
    case ((p1,count), (p2,categoryList)) => (p1,categoryList,count) 
}