Scala - 如何将Map [Int,List [List [IntVar]]]转换为

时间:2016-11-27 19:29:03

标签: scala data-structures flatmap jacop

我是Scala编程的新手,平面图功能让我很头疼。

在你让我搜索之前,我对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,但我想知道在我的情况下如何正确使用它。

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

如果您想要地图值中的每个IntVar,您可以这样:

 map.values.flatten.flatten.toList

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