在Scala中列出ASMAP中的键

在Scala中列出ASMAP中的键,scala,cucumber-jvm,Scala,Cucumber Jvm,我有这个: val asMaps = data.asMaps(classOf[String], classOf[String]) 包含许多这样的地图 {Source_Field=nameSource, Target_Field=nameTarget} {Source_Field=lastSource, Target_Field=lastTarget} 我正在尝试打印每个密钥,为此我正在执行: for (i <- 0 to asMaps.size()-1) { print

我有这个:

val asMaps = data.asMaps(classOf[String], classOf[String])
包含许多这样的地图

{Source_Field=nameSource, Target_Field=nameTarget}
{Source_Field=lastSource, Target_Field=lastTarget}
我正在尝试打印每个密钥,为此我正在执行:

for (i <- 0 to asMaps.size()-1) 
{
       println ("map = "  +  asMaps.get(i))

      asMaps.get(i).keySet().forEach{case(k) => println(k)}
}
(i println(k)} } 但是没有工作,我已经找了很多东西,但是没有任何东西对我有用,
感谢您的帮助

以下功能应该可以正常工作:

for (i <- 0 until asMaps.size()) 
{
       println ("map = "  +  asMaps.get(i))

      asMaps.get(i).keySet().forEach(k => println(k))
}
这就足够了:

asMaps.foreach(m => m.keySet.foreach(k => println(k)))
谢谢“加博·巴科斯”的帮助 问题已解决,在我的情况下,我需要添加:

val iteratorKey = JavaConversions.asScalaIterator[String](asMaps.get(i).keySet().iterator())

      for (key <- iteratorKey)
      {
        println ("key   : " + key )
        println ("value : " + asMaps.get(i).get(key) )
      }
val iteratorKey=JavaConversions.asscaliterator[String](asMaps.get(i).keySet().iterator())

对于(key)我的错误:缺少扩展函数的参数类型匿名函数的参数类型必须完全已知。(SLS 8.5)预期类型为:java.util.function.Consumer[?>:String]asMaps.get(i).keySet().forEach{case(k)=>println(k)}asMaps的类型是什么?我正在使用scala和Cucumber,数据来自Cucumber特性。asMaps是一个函数scala Cucumber它是一个字符串映射列表,stringno它不工作,我有错误:错误:(190,38)缺少参数类型asMaps.get(I).keySet().forEach(k=>println(k))。我添加了k:set以给它一个类型,但它无法解决问题。更新了我的答案。您是否使用Scala 2.11?在这种情况下,可能只有第二个选项(
(k:String)=>println(k)
)工作正常,但对于Java8,还是推荐使用2.12。我认为您的假设是
asMaps
返回Scala集合,但代码的其余部分表明这些是Java集合。
val iteratorKey = JavaConversions.asScalaIterator[String](asMaps.get(i).keySet().iterator())

      for (key <- iteratorKey)
      {
        println ("key   : " + key )
        println ("value : " + asMaps.get(i).get(key) )
      }