如何在Scala中将Java Collection [Int]转换为Array [Int]

Ken*_*Ken 2 java scala treemap

我有一个java.util.Treemap[Long, Int]Scala.我需要做的是将Treemap中的值转换为Array [Int].

我可以得到一个Iterator[Int]Collection[Int]来自TreeMap,但我不知道如何将这些转换为Array[Int].

任何建议,将不胜感激.

Lui*_*hys 6

问题t.values.toArrayjava.util.Collection已经有一个toArray()方法,这就是为什么它返回一个Integer[]看起来像Array[AnyRef]Scala的原因.如果Java没有这样的方法,那么隐式in JavaConversionsIterable[Int]在构建Array之前启动并将其转换为a .因此,您可以显式调用coversion或提供类型提示:

import collection.JavaConversions._    

(t.values: Iterable[Int]).toArray
Run Code Online (Sandbox Code Playgroud)

或者

import collection.JavaConverters._

t.values.asScala.toArray
Run Code Online (Sandbox Code Playgroud)

对于1000个条目的TreeMap,在我的机器上,这些速度是使用速度的两倍,大约是使用速度的30倍toMap.