首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将scala.List转换为java.util.List?

如何将scala.List转换为java.util.List?
EN

Stack Overflow用户
提问于 2010-03-12 09:37:18
回答 7查看 84.2K关注 0票数 123

如何将Scala语言的scala.List转换为Java的java.util.List

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-03-12 12:30:09

Scala列表和Java列表是两种不同的东西,因为前者是不可变的,而后者是可变的。因此,要从一个列表转换到另一个列表,首先必须将Scala列表转换为可变集合。

在Scala 2.7上:

代码语言:javascript
复制
import scala.collection.jcl.Conversions.unconvertList
import scala.collection.jcl.ArrayList
unconvertList(new ArrayList ++ List(1,2,3))

从Scala 2.8开始:

代码语言:javascript
复制
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): _*)

但是,如果期望的类型是Java List,则该示例中的asList不是必需的,因为转换是隐式的,如最后一行所示。

票数 69
EN

Stack Overflow用户

发布于 2013-12-29 08:14:55

不知道为什么之前没有提到这一点,但我认为最直观的方法是直接在Scala列表上调用JavaConvertersasJava装饰器方法:

代码语言:javascript
复制
scala> val scalaList = List(1,2,3)
scalaList: List[Int] = List(1, 2, 3)

scala> import scala.collection.JavaConverters._
import scala.collection.JavaConverters._

scala> scalaList.asJava
res11: java.util.List[Int] = [1, 2, 3]
票数 175
EN

Stack Overflow用户

发布于 2019-04-01 04:01:34

Scala 2.13开始,包scala.jdk.CollectionConverters通过Seq的皮条客提供asJava,并替换包scala.collection.JavaConverters/JavaConversions

代码语言:javascript
复制
import scala.jdk.CollectionConverters._

// val scalaList: List[Int] = List(1, 2, 3)
scalaList.asJava
// java.util.List[Int] = [1, 2, 3]
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2429944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档