在 Scala 2.8.0 中迭代 Java Map 的新方法是什么? [英] What's the new way to iterate over a Java Map in Scala 2.8.0?

查看:41
本文介绍了在 Scala 2.8.0 中迭代 Java Map 的新方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

scala.collection.JavaConversions 如何取代 Stack Overflow 问题中给出的答案迭代 Java 集合在 Scala 中(它不起作用,因为jcl"包不见了)和 使用 Scala 迭代 Map(在我将尝试煮沸的复杂测试中它对我不起作用下来,稍后在这里发布).

How does scala.collection.JavaConversions supercede the answers given in Stack Overflow question Iterating over Java collections in Scala (it doesn't work because the "jcl" package is gone) and in Iterating over Map with Scala (it doesn't work for me in a complicated test which I'll try to boil down and post here later).

后者实际上是一个 Scala Map 问题,但我想我需要知道两个答案才能迭代 java.util.Map.

The latter is actually a Scala Map question, but I think I need to know both answers in order to iterate over a java.util.Map.

推荐答案

在 2.8 中,您导入 scala.collection.JavaConversions._ 并用作 Scala 映射.这是一个示例(在 2.8.0.RC1 中):

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

如果您特别想要一个 Scala 迭代器,请使用 jmap.iterator(在转换导入之后).

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

这篇关于在 Scala 2.8.0 中迭代 Java Map 的新方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆