scala - 如何检查数组数组是否包含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的适当测量Array
来确定,或者需要 Java 互操作,否则请尽量避免使用适当的 Scala 集合,例如List
:
List(List(1,2), List(2,1)).contains(List(1,2)) // res2: Boolean = true
如果你必须使用Array
,然后尝试组合exists
和sameElements
像这样
test.exists(_.sameElements(Array(1,2))) // res1: Boolean = true
推荐阅读
- java - Apache Wicket - Repeatingview 上的 HTML5-details-element - 保存开放属性
- ruby-on-rails - 最佳音频设置 ffmpeg rails
- c# - C#自动完成,如何禁用自定义文本?
- sql-server - 在 SQL Server 中将临时表创建为 #TempTable 和 TempDb.dbo.TembName 有什么区别,哪一个提供更好的性能?
- regex - 如果满足条件,如何突出显示一行?
- java - 如何使用 Selenium Java 标记超链接
- python - 如何获取位置文件的导入功能?
- javascript - 从服务器端调用 passport.authenticate
- r - 如何在 Stargazer / R 中组合 dep var 列
- r - R:如何在列表中绘制 data.frames 的数据?