如何检查数组数组是否包含 Scala 中的特定数组?

How to check if an array of arrays contains a specific array in scala?

在scala中,如何检查Int的多维数组是否包含数组,例如:

val test = Array(Array(1, 2), Array(2, 1))

test.contains(Array(1, 2)) // this results to false

test.contains(test(0)) // this results to true

所以看起来 scala 也在比较对象引用,在第一种情况下,尽管具有相同的元素,但它是不同的对象,因此返回 false。这样对吗?

在第二种情况下,我正在针对列表中已包含的相同对象之一进行测试,因此返回 true。

如何达到预期的结果,即检查 Scala 中的多维数组是否包含特定数组?

我已经看到这对元组是可能的,但对数组是不可能的。

除非您需要原始性能,由适当的 和 jmh 标识,或者需要 Java 互操作,否则请尽量避免使用 Array,而是使用适当的 Scala 集合,例如 List:

List(List(1,2), List(2,1)).contains(List(1,2))  // res2: Boolean = true

如果您必须使用 Array,请像这样尝试组合 existssameElements

test.exists(_.sameElements(Array(1,2)))         // res1: Boolean = true

Why doesn't Array's == function return true for Array(1,2) == Array(1,2)?

您可以使用 sameElements:

test.exists(_.sameElements(Array(1, 2)))