15

如何将 Scala 列表与 Java 列表进行比较?

scala> List(1, 2, 3, 4, 5)
res0: List[Int] = List(1, 2, 3, 4, 5)

scala> java.util.Arrays.asList(1, 2, 3, 4, 5)
res1: java.util.List[Int] = [1, 2, 3, 4, 5]

scala> res0 == res1
res2: Boolean = false

是否有一些同时接受 Scala 列表和 Java 列表的静态辅助方法进行比较?或者在这两种列表上是否有一种“惰性包装器”,然后我可以通过它们直接比较==

4

2 回答 2

18

...或使用sameElements.

scala> import collection.JavaConversions._
import collection.JavaConversions._

scala> res0.sameElements(res1)            
res3: Boolean = true
于 2012-04-12T06:58:33.383 回答
13

您可以JavaConverters为此使用:

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

scala> res0 == res1.asScala
res2: Boolean = true

请注意,asScala仅返回原始视图List,请参阅JavaConvertersasScalaBufferConverter文档中的文档。

于 2012-04-12T09:28:24.330 回答