1
我有兩個列表中斯卡拉:斯卡拉:創建HashMap中使用兩個列表
val workersList = Worker1 :: Worker2 :: Worker3 :: Worker4 :: Nil // type List[Worker]
val workStationsList = WS1 :: WS2 :: WS3 :: WS4 :: Nil // type List[WorkStation]
一個工人對象有一個參數worksIn : List[WorkStation]
明知Worker1
作品WS1
和WS2
,Worker2
作品WS1
和WS2
,Worker3
在WS3
和WS4
和Worker4
作品WS3
和WS4
我想得到一個HashMap[Worker, List[WorkStation]]
明確表示。
它的結果應該是這樣的:
Worker1 -> List(WS1 :: WS2 :: Nil)
Worker2 -> List(WS1 :: WS2 :: Nil)
Worker3 -> List(WS3 :: WS4 :: Nil)
Worker4 -> List(WS3 :: WS4 :: Nil)
我試圖做到這一點,但它不工作:
val list = workersList.flatMap(w => workStationsList.map(ws => if(w.worksIn.contains(w)) w -> ws)).toMap[Worker, List[WorkStation]]
有誰知道我能做到這一點?
可能重複[在Scala中,有沒有辦法將兩個列表轉換爲Map?](https://stackoverflow.com/questions/2189784/in-scala-is-there-a-way-to -take-convert-two-lists-into-a-map) –
真正的問題不在於如何將兩個列表轉換爲HashMap。這就是我如何得到我想要的結果。這個答案對我的具體問題沒有幫助。 –
不知道你需要第二個列表,你可以簡單地執行'workersList.map(w =>(w,w.worksIn)).toMap' –