在Scala 2.8.0中迭代Java Map的新方法是什么?
scala.collection.JavaConversions
如何取代Stack Overflow问题在Scala中迭代Java集合 (它不工作,因为“jcl”包已经不存在了)和用Scala迭代Map方法 (它不适用于我在一个复杂的testing,我会尝试煮沸,后来在这里发表)。
后者实际上是一个Scala Map问题,但我想我需要知道两个答案才能遍历java.util.Map
。
在2.8中,您导入scala.collection.JavaConversions._
并将其用作Scala地图。 下面是一个例子(在2.8.0.RC1中):
scala> val jmap:java.util.Map[String,String] = new java.util.HashMap[String,String] jmap: java.util.Map[String,String] = {} scala> jmap.put("Hi","there") res0: String = null scala> jmap.put("So","long") res1: String = null scala> jmap.put("Never","mind") res2: String = null scala> import scala.collection.JavaConversions._ import scala.collection.JavaConversions._ scala> jmap.foreach(kv => println(kv._1 + " -> " + kv._2)) Hi -> there Never -> mind So -> long scala> jmap.keys.map(_.toUpperCase).foreach(println) HI NEVER SO
如果你特别想要一个Scala迭代器,使用jmap.iterator
(在转换导入之后)。