将Scala列表与Java列表进行比较

fre*_*low 15 java comparison scala equality list

如何将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
Run Code Online (Sandbox Code Playgroud)

是否有一些用于比较的静态助手方法接受Scala列表和Java列表?或者在两种列表中都有一种"懒惰的包装",然后我可以通过它直接进行比较==

Wil*_*ger 17

...或使用sameElements.

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

scala> res0.sameElements(res1)            
res3: Boolean = true
Run Code Online (Sandbox Code Playgroud)


rob*_*nst 12

你可以使用JavaConverters这个:

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

scala> res0 == res1.asScala
res2: Boolean = true
Run Code Online (Sandbox Code Playgroud)

请注意,asScala只返回原始视图List,查看文档asScalaBufferConverterJavaConverters文档.