Как сравнить два массива в scala?



val a: Array[Int] = Array(1,2,4,5)
val b: Array[Int] = Array(1,2,4,5)
a==b // false


есть ли способ сопоставления шаблонов, чтобы увидеть, если два массива (или последовательности) эквивалентны?

748   4  

4 ответов:

вам нужно изменить последнюю строку с

a.deep == b.deep

для глубокого сравнения массивов.

С Программирование Scala:

Array(1,2,4,5).sameElements(Array(1,2,4,5))
  a.corresponds(b){_ == _}

Scaladoc: true если обе последовательности имеют той же длины и p(x, y) и true для всех соответствующих элементов x of this завернут массива и y на that, в противном случае false

для лучшей производительности вы должны использовать:

java.util.Arrays.equals(a, b)

Это очень быстрый и не требует дополнительного выделения объекта. Array[T] в scala это то же самое, что и Object[] в java. Та же история для примитивных значений, таких как Int который является java int.

Comments

    Ничего не найдено.