arrays - 成对比较数组Scala
问题描述
我正在尝试比较数组的两个连续元素是否相等。
我试过使用 for 但因为它返回一个布尔值但它似乎不起作用我错过了什么
val array1 = Array(1, 4, 2, 3)
def equalElements(array : Array[Int]) : Boolean = {
for (i <- 1 to (array.size )) {
if (array(i) == array(i + 1)) true else false
}
}
解决方案
你可以用sliding
那个
通过在固定大小的块中传递“滑动窗口”对元素进行分组(而不是像在分组中那样对它们进行分区。)
val array1 = Array(1, 1, 2, 2)
val equalElements = array1
.sliding(size = 2, step = 1) //step = 1 is a default value.
.exists(window => window.length == 2 && window(0) == window(1))
推荐阅读
- c++ - 使用 cmake 链接错误
- python - 从 Python 脚本调用 autoit 脚本
- nskeyedarchiver - 如何在 iOS 12 中替换 NSKeyedArchiver 的初始化程序 init(forWritingWith:) 来编码 CKRecord 的元数据
- c++ - 使用 C++ 将一维数组转换为二维字符串数组
- merge - 按列名称“名称”合并两个数据集
- python - 无法从类中调用函数以在 Python 中绘制椭圆
- postgresql - 全文搜索不产生结果
- uwp - 加载到信息亭模式时禁用win 10“请稍候”蓝屏
- java - 通用功能作为功能接口?
- sql - Presto SQL 旋转(因为没有更好的词)数据