在Scala中比较两个Byte []的相等性(检查二进制图像数据)

时间:2015-06-09 22:32:40

标签: scala

我想比较包含二进制图像表示的两个(小)Byte[]。我不想使用MD5或SHA或诸如此类的东西,因为没有意义......这些只是迭代数组,计算校验和等,而且没有必要。

似乎应该有一种超级简单的方法来迭代两个数组a1a2,并比较它们的相等性,例如:

(a1, a2).forall(a, b => a == b)

但这当然不起作用......

3 个答案:

答案 0 :(得分:12)

以下应该这样做

val a: Array[Byte] = Array(1,2,4,5)
val b: Array[Byte] = Array(1,2,4,5)
a.deep==b.deep 

另一种方式是

a.sameElements(b)

答案 1 :(得分:3)

还要考虑a1a2之间的区别,

(a1 diff a2).isEmpty

在第一次不匹配时停止比较。

答案 2 :(得分:2)

 val arrayOne = Array(1,2,3)
 val arrayTwo = Array(1,2,3)

 arrayOne zip arrayTwo forall {case (a,b) => a == b}