0

我是 Scala 编程的新手,flatmap 函数让我很头疼。

在您要求我搜索之前,我对 Stackoverflow 进行了一些研究:https ://stackoverflow.com/search?q=scala+map+to+list但我没有找到可以轻松解决我的问题的方法。

这是我的问题:

对于 Jacop ( http://jacopguide.osolpro.com/guideJaCoP.html ) 的 Scala 编程项目,

我需要转换这种地图

Map[Int,List[List[IntVar]]]

至 :

List[T] 
// In my case , only a List[IntVar] 

我知道我应该多次使用 flatMap 但我想知道在我的情况下如何正确使用它。

谢谢你的帮助

4

1 回答 1

2

如果你想要IntVar地图的每一个值,你可以这样做:

 map.values.flatten.flatten.toList

调用values返回一个Iterable包含地图所有值的值。在这种情况下,它返回一个类型为 的对象Iterable[List[List[IntVar]]]。对该对象的第一次flatten调用将其展平为Iterable[List[IntVar]]. 第二个flatten-call 将此对象进一步展平为Iterable[IntVar]. 最后,该toList方法将其转换为List[IntVar].

于 2016-11-27T19:35:53.350 回答