Scala:使用两个列表创建HashMap



我在 Scala 中有两个列表:

val workersList = Worker1 :: Worker2 :: Worker3 :: Worker4 :: Nil // type List[Worker]
val workStationsList = WS1 :: WS2 :: WS3 :: WS4 :: Nil // type List[WorkStation]

工作器对象具有参数worksIn : List[WorkStation]

知道Worker1适用于WS1WS2Worker2适用于WS1WS2Worker3适用于WS3WS4Worker4适用于WS3WS4我想得到一个确切说明这一点的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]]

有谁知道我该怎么做?

val list = workersList.map(w => (w -> w.worksIn)).toMap // type Map[Worker, List[WorkStation]]

workStationList似乎是多余的。

最新更新