Scala 2.8.0 で Java マップを反復処理する新しい方法は何ですか? 質問する

Scala 2.8.0 で Java マップを反復処理する新しい方法は何ですか? 質問する

scala.collection.JavaConversionsStack Overflowの質問で与えられた回答をどのように置き換えるのかScala で Java コレクションを反復処理する(「jcl」パッケージがなくなったため動作しません)そしてScala で Map を反復処理する(複雑なテストではうまくいかなかったので、後で要約してここに投稿しようと思います)。

後者は実際には Scala Map の質問ですが、 を反復処理するには両方の答えを知る必要があると思いますjava.util.Map

ベストアンサー1

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(変換のインポート後) を使用します。

おすすめ記事