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

问题描述 投票:60回答:4
val a: Array[Int] = Array(1,2,4,5)
val b: Array[Int] = Array(1,2,4,5)
a==b // false

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

arrays scala pattern-matching
4个回答
93
投票

您需要将最后一行更改为

a.deep == b.deep

对数组进行深入比较。


86
投票

来自Programming Scala

Array(1,2,4,5).sameElements(Array(1,2,4,5))

18
投票
  a.corresponds(b){_ == _}

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


4
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.