我正在尝试迭代以下地图
scala> val m1 = Map("key1" -> List(1,2), "key2" -> List(3,4))
我不确定为什么以下代码以这种方式打印?
scala> m1 foreach {case (key, value) => println (key + "-->" + value .foreach {println} )}
1
2
key1-->()
3
4
key2-->()
我希望得到以下内容
key1 --> 1 2
key2 --> 3 4
答案 0 :(得分:4)
您无法将println
嵌套在另一个println
中。 println
期望字符串作为参数,因此如果您希望列表是以空格分隔的字符串,请使用mkString
:
scala> val m1 = Map("key1" -> List(1,2), "key2" -> List(3,4))
m1: scala.collection.immutable.Map[String,List[Int]] = Map(key1 -> List(1, 2), key2 -> List(3, 4))
scala> m1 foreach {case (key, value) => println (key + "-->" + value.mkString(" ") )}
key1-->1 2
key2-->3 4
scala>
答案 1 :(得分:0)
尝试使用此功能进行理解,提取每个键列表对
for ( (k,xs) <- m1 ) println(k + "->" + xs.mkString(" "))