What's the new way to iterate over a Java Map in Scala 2.8.0?

前端 未结 1 1376
遇见更好的自我
遇见更好的自我 2020-12-23 16:44

How does scala.collection.JavaConversions supercede the answers given in Stack Overflow question Iterating over Java collections in Scala (it doesn\'t

相关标签:
1条回答
  • 2020-12-23 17:39

    In 2.8, you import scala.collection.JavaConversions._ and use as a Scala map. Here's an example (in 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
    

    If you specifically want a Scala iterator, use jmap.iterator (after the conversions import).

    0 讨论(0)
提交回复
热议问题