Функция contentEquals

Функция contentEquals выполняет сравнение содержимого двух массивов на равенство. Возвращает true если массивы имеют одинаковый размер и содержат одинаковые элементы в одинаковом порядке, и false в противном случае. Функция доступна для массивов всех типов: Array, IntArray, DoubleArray и других.

Синтаксис

kotlininfix fun <T> Array<out T>.contentEquals(other: Array<out T>): Boolean
kotlinfun BooleanArray.contentEquals(other: BooleanArray): Boolean
kotlinfun ByteArray.contentEquals(other: ByteArray): Boolean
kotlinfun CharArray.contentEquals(other: CharArray): Boolean
kotlinfun DoubleArray.contentEquals(other: DoubleArray): Boolean
kotlinfun FloatArray.contentEquals(other: FloatArray): Boolean
kotlinfun IntArray.contentEquals(other: IntArray): Boolean
kotlinfun LongArray.contentEquals(other: LongArray): Boolean
kotlinfun ShortArray.contentEquals(other: ShortArray): Boolean

Пример

Сравним два массива типа Array<String>:

kotlinval arr1 = arrayOf("a", "b", "c")
val arr2 = arrayOf("a", "b", "c")
val res = arr1.contentEquals(arr2)
println(res)

Результат выполнения кода:

kotlinBoolean true

Пример

Сравним два массива с разным содержимым:

kotlinval arr1 = arrayOf(1, 2, 3)
val arr2 = arrayOf(1, 2, 4)
val res = arr1.contentEquals(arr2)
println(res)

Результат выполнения кода:

kotlinBoolean false

Пример

Сравним два массива с одинаковыми элементами, но в разном порядке:

kotlinval arr1 = arrayOf(1, 2, 3)
val arr2 = arrayOf(3, 2, 1)
val res = arr1.contentEquals(arr2)
println(res)

Результат выполнения кода:

kotlinBoolean false

Пример

Сравним два массива разных типов:

kotlinval arr1 = intArrayOf(1, 2, 3)
val arr2 = arrayOf(1, 2, 3)
val res = arr1.contentEquals(arr2) // Ошибка компиляции: несовместимые типы

Пример

Использование инфиксной нотации для массивов объектов:

kotlinval arr1 = arrayOf("x", "y", "z")
val arr2 = arrayOf("x", "y", "z")
val res = arr1 contentEquals arr2
println(res)

Результат выполнения кода:

kotlinBoolean true

Для каких типов коллекций работает

Функция contentEquals работает только для массивов:

Для других типов коллекций (List, Set, Map) используйте стандартные методы сравнения.

Смотрите также

  • функцию contentDeepEquals,
    которая выполняет глубокое сравнение массивов
  • функцию contentToString,
    которая преобразует массив в строковое представление
  • функцию contentHashCode,
    которая вычисляет хэш-код содержимого массива
  • функцию equals,
    которая выполняет сравнение объектов