Функция contentDeepEquals

Функция contentDeepEquals выполняет глубокое сравнение массивов и коллекций, проверяя равенство их содержимого и всех вложенных элементов. В отличие от простого сравнения через equals, эта функция рекурсивно сравнивает все элементы, включая элементы вложенных массивов и коллекций.

Импорт

kotlinimport kotlin.collections.contentDeepEquals

Синтаксис

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

Поддерживаемые типы коллекций

Функция contentDeepEquals работает со следующими типами:

Пример

Сравнение двух массивов с помощью contentDeepEquals:

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

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

kotlinBoolean true

Пример

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

kotlinval arr1 = arrayOf('a', 'b', 'c')
val arr2 = arrayOf('a', 'b', 'd')
val res = arr1.contentDeepEquals(arr2)
println(res)

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

kotlinBoolean false

Пример

Глубокое сравнение вложенных массивов:

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

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

kotlinBoolean true

Пример

Сравнение с null значениями:

kotlinval arr1: Array<Int>? = null
val arr2: Array<Int>? = null
val res = arr1.contentDeepEquals(arr2)
println(res)

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

kotlinBoolean true

Пример

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

kotlinval arr1 = intArrayOf(1, 2, 3)
val arr2 = intArrayOf(1, 2, 3)
val res = arr1.contentDeepEquals(arr2)
println(res)

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

kotlinBoolean true

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

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