Scala - 迭代并打印地图地图

时间:2018-03-19 11:59:24

标签: scala scala-collections

如何打印地图地图?

我写过

map foreach (x => println (x._1 + "-->" + {x._2 foreach {y=> println( y._1 +" ->"+ y._2)}}))

有效。
但它看起来像一个黑客。

有没有更好的方法在Scala中编写它。

2 个答案:

答案 0 :(得分:1)

您可以使用println将打印所有嵌套的Maps

println(map)

答案 1 :(得分:-1)

根据您的需要,您可以从实际呈现完整字符串中受益,然后执行单次打印。参见:

scala> val mapmap = Map(1 -> Map("a" -> "z"), 2 -> Map("b" -> "y", "c" -> "x")) 
mapmap: scala.collection.immutable.Map[Int,scala.collection.immutable.Map[String,String]] = Map(1 -> Map(a -> z), 2 -> Map(b -> y, c -> x))

scala> mapmap.foldLeft(""){case (x,accX)=> x.foldLeft(""){case (y,accY) => y + accY} + accX}
res0: String = (1,Map(a -> z))(2,Map(b -> y, c -> x))

现在res0是一个完全物化的字符串输出,没有副作用。