I have two lists in Scala:
val workersList = Worker1 :: Worker2 :: Worker3 :: Worker4 :: Nil // type List[Worker]
val workStationsList = WS1 :: WS2 :: WS3 :: WS4 :: Nil // type List[WorkStation]
A worker object has a parameter worksIn : List[WorkStation]
Knowing that Worker1 works in WS1 and WS2, Worker2 works in WS1 and WS2, Worker3 works in WS3 and WS4 and Worker4 works in WS3 and WS4 I want to get a HashMap[Worker, List[WorkStation]] that states exactly that.
It's result should be something like this:
Worker1 -> List(WS1 :: WS2 :: Nil)
Worker2 -> List(WS1 :: WS2 :: Nil)
Worker3 -> List(WS3 :: WS4 :: Nil)
Worker4 -> List(WS3 :: WS4 :: Nil)
I tried to do this, but it doesn't work:
val list = workersList.flatMap(w => workStationsList.map(ws => if(w.worksIn.contains(w)) w -> ws)).toMap[Worker, List[WorkStation]]
Does anyone know how can I do this?
 
    