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?