Pairwise comparison array Scala

242 views Asked by At

I 'm trying to compare if two consecutive elements of an array are equal.

I have tried using for but as it returns a boolean but it does not seem to work what am I missing

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
  }
}
1

There are 1 answers

0
Ivan Stanislavciuc On BEST ANSWER

You can use sliding that

Groups elements in fixed size blocks by passing a "sliding window" over them (as opposed to partitioning them, as is done in grouped.)

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))