我想在Scala中的Java数组上map
。对于普通的Java集合,我知道我可以使用
import scala.collection.JavaConverters._
new java.util.ArrayList[Int](1).asScala.map(_.toString)
但是,对于数组,此转换不起作用:
import scala.collection.JavaConverters._
java.util.Locale.getAvailableLocales.asScala // doesn't compile
那么如何将Java数组转换为Scala集合或可迭代或我可以映射的内容?
答案 0 :(得分:4)
我刚刚发现它:
Locale.getAvailableLocales.to[Seq]
不需要任何隐式转换器或任何东西。
答案 1 :(得分:4)
您不必导入任何通过Java阵列可用的map
隐式转换。尝试在Scala shell中运行以下命令:
java.util.Locale.getAvailableLocales.map(_.toString)
允许使用map
和filter
等使用函数而不是Java数组的隐式转换带有Predef
,它是隐式导入的。
正如您在自己的回答中提到的,您还可以将Array显式转换为另一个集合(这可能归功于我之前提到的隐式转换)。