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

问题

如何将Scala'sscala.List转换为Java的java.util.List?

#1 热门回答(124 赞)

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

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]

#2 热门回答(60 赞)

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

在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): _*)

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

#3 热门回答(17 赞)

##总结以前的答案

假设我们有以下List:

scala> val scalaList = List(1,2,3)

scalaList: List[Int] = List(1, 2, 3)

如果你想要be显式和准确地告诉你要转换的内容:

scala> import scala.collection.JavaConverters._

import scala.collection.JavaConverters._

scala> scalaList.asJava

res11: java.util.List[Int] = [1, 2, 3]

如果你不喜欢co控制转换37586930和让编译器make隐含工作:

scala> import scala.collection.JavaConversions._

import scala.collection.JavaConversions._

scala> val javaList: java.util.List[Int] = scalaList

javaList: java.util.List[Int] = [1, 2, 3]

这取决于你希望如何控制代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值