Как преобразовать Scala scala.List
в Java java.util.List
?
Список Scala и Список Java - два разных существа, потому что первый неизменяем, а второй - изменяем. Итак, чтобы перейти от одного к другому, вам сначала нужно преобразовать Scala List в изменяемую коллекцию.
В Scala 2.7:
import scala.collection.jcl.Conversions.unconvertList
import scala.collection.jcl.ArrayList
unconvertList(new ArrayList ++ List(1,2,3))
Начиная со Scala 2.8:
import scala.collection.JavaConversions._
import scala.collection.mutable.ListBuffer
asList(ListBuffer(List(1,2,3): _*))
val x: java.util.List[Int] = ListBuffer(List(1,2,3): _*)
Однако asList
в этом примере не требуется, если ожидаемый тип является Java List
, поскольку преобразование неявное, как показано в последней строке.
Для одиночных вызовов выполнение вручную может быть самым простым решением:
val slist = List (1, 2, 3, 4)
val jl = new java.util.ArrayList [Integer] (slist.size)
slist.foreach (jl.add (_))
Я не измерял производительность.