我知道scala.collection包中有两个非常有用的对象,可以帮助我们实现这个目标:
- JavaConverters(如果我想明确说明并准确说明我要转换的内容)
- JavaConversions(如果我不想共同控制转换,让 编译器为我隐式工作)
但是我在将它们应用于我的案例时遇到了一些麻烦,因为我的数据结构比我在许多示例中看到的其他数据结构要复杂一些。
我在使用 scala 代码,我希望我的 scala 函数返回一个 Java 集合。所以我想将 Scala Seq[(Int, Seq[String])] 转换为 Java 集合 List[(int, List[String])]。
我该怎么做?
最佳答案
首先使用map将Seq[(Int, Seq[String])]
映射到Seq[(Int, List[String])]
,然后再使用与主集合相同的功能
import scala.collection.JavaConversions
val seq : Seq[(Int, Seq[String])] = some code
val seqOfLists = seq.map(s => (s._1, JavaConversions.seqAsJavaList(s._2)))
val listOfLists = JavaConversions.seqAsJavaList(seqOfLists)
或更新的 API:
import scala.collection.JavaConverters._
val seq : Seq[(Int, Seq[String])] = some code
val seqOfLists = seq.map(s => (s._1, s._2.asJava))
val listOfLists = seqOfLists.asJava
关于java - 如何将 Scala 集合 Seq[(Int, Seq[String])] 转换为 Java 集合 List[(int, List[String])]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48346623/