如何比较scala中的两个数组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何比较scala中的两个数组?相关的知识,希望对你有一定的参考价值。

val a: Array[Int] = Array(1,2,4,5)
val b: Array[Int] = Array(1,2,4,5)
a==b // false

是否有模式匹配方式来查看两个数组(或序列)是否相同?

答案

您需要将最后一行更改为

a.deep == b.deep

对数组进行深入比较。

另一答案

来自Programming Scala

Array(1,2,4,5).sameElements(Array(1,2,4,5))
另一答案
  a.corresponds(b){_ == _}

Scaladoc:true如果两个序列具有相同的长度,p(x, y)true所有相应的元素xthis包裹阵列和ythat,否则false

另一答案

为获得最佳性能,您应该使用:

java.util.Arrays.equals(a, b)

这非常快,不需要额外的对象分配。 scala中的Array[T]与java中的Object[]相同。原始值的相同故事,如Int,即java int

以上是关于如何比较scala中的两个数组?的主要内容,如果未能解决你的问题,请参考以下文章

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

比较 Scala 和 Spark 中的两个文件内容

Vuejs2 - 如何将两个数组中的元素与计算属性进行比较?

scala如何取出rdd中的每一个元素

JavaScript单行代码,也就是代码片段

将一个数据帧的数组列与scala中另一个数据帧的数组列的子集进行比较