我在 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
适用于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]]
有谁知道我该怎么做?
val list = workersList.map(w => (w -> w.worksIn)).toMap // type Map[Worker, List[WorkStation]]
workStationList
似乎是多余的。