【发布时间】:2014-07-31 20:31:17
【问题描述】:
this question 的答案很好地解释了如何使用 Scala 的 Java 转换器将 Java 列表更改为 Scala 列表。不幸的是,我需要将列表列表从 Java 转换为 Scala 类型,并且该解决方案不起作用:
// pseudocode
java.util.List[java.util.List[String]].asScala
-> scala.collection.immutable.List[java.util.List[String]]
有没有一种方法可以在不对 Java 对象进行 O(N) 迭代的情况下进行这种转换?
【问题讨论】:
-
可能用(Indexed)Seq可以,但是immutable.List是一个具体的类型,所以不是,你要提前付出代价(其中N是外部列表)。
-
您确定要避免吗?你试过
jlistOfjList.asScala.map(_.asScala)吗? -
@Daenyth 成功了!
-
@Cory,所以你只是在开玩笑说需要它低于 O(n)?
-
@dhg 我绝对应该更准确地表达我的问题。我想要避免的是丑陋的
foreach或迭代,因为我习惯于来自 Java 和 C++。我什至不知道在 Scala 中可以实现像jlistOfjList.asScala.map(_.asScala)这样优雅的东西。我应该说我想要一个 优雅的 解决方案,而不是避免 O(N) 迭代的解决方案。简而言之,不,我不是在开玩笑,我只是误解了我的意图。
标签: list scala scala-collections