scala.collection.JavaConversions
は、Stack Overflowの質問Iterating over Java Collections in Scala(「jcl」パッケージがなくなったため機能しません)およびScalaを使用したマップの反復(複雑なテストでは機能しません。後で要約してここに投稿しようとします)。
後者は実際にはScalaマップの質問ですが、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
を使用します(変換のインポート後)。