Scala 如何遍历值为list的映射?

Scala 如何遍历值为list的映射?,scala,Scala,我正在尝试遍历下面的映射 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-->() 我希望得到以下信息

我正在尝试遍历下面的映射

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 

不能将一个
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> 

不能将一个
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> 

试着理解一下,在这里你可以提取每个密钥列表对

for ( (k,xs) <- m1 ) println(k + "->" + xs.mkString(" "))

对于((k,xs)请尝试以下理解方法,提取每个密钥列表对

for ( (k,xs) <- m1 ) println(k + "->" + xs.mkString(" "))

对于((k,xs)我建议从
映射[A,B]
列表[B]
,然后打印。我建议从
映射[A,B]
列表[B]
,然后打印。