首页 > 解决方案 > 成对比较数组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
  }
}

标签: arraysscalacomparepairwise

解决方案


你可以用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))


推荐阅读