Функция contentDeepEquals
Функция contentDeepEquals выполняет глубокое сравнение
массивов и коллекций, проверяя равенство их содержимого
и всех вложенных элементов. В отличие от простого сравнения
через equals, эта функция рекурсивно сравнивает
все элементы, включая элементы вложенных массивов и коллекций.
Импорт
import kotlin.collections.contentDeepEquals
Синтаксис
fun <T> Array<out T>?.contentDeepEquals(other: Array<out T>?): Boolean
fun ByteArray?.contentDeepEquals(other: ByteArray?): Boolean
fun ShortArray?.contentDeepEquals(other: ShortArray?): Boolean
fun IntArray?.contentDeepEquals(other: IntArray?): Boolean
fun LongArray?.contentDeepEquals(other: LongArray?): Boolean
fun FloatArray?.contentDeepEquals(other: FloatArray?): Boolean
fun DoubleArray?.contentDeepEquals(other: DoubleArray?): Boolean
fun BooleanArray?.contentDeepEquals(other: BooleanArray?): Boolean
fun CharArray?.contentDeepEquals(other: CharArray?): Boolean
Поддерживаемые типы коллекций
Функция contentDeepEquals работает со следующими типами:
Array- массивы объектовByteArray,ShortArray,IntArray,LongArray- массивы примитивных чиселFloatArray,DoubleArray- массивы чисел с плавающей точкойBooleanArray- массивы булевых значенийCharArray- массивы символовList,Set,Map(через преобразование в массивы)
Пример
Сравнение двух массивов с помощью contentDeepEquals:
val arr1 = arrayOf(1, 2, 3, 4, 5)
val arr2 = arrayOf(1, 2, 3, 4, 5)
val res = arr1.contentDeepEquals(arr2)
println(res)
Результат выполнения кода:
Boolean true
Пример
Сравнение массивов с разным содержимым:
val arr1 = arrayOf('a', 'b', 'c')
val arr2 = arrayOf('a', 'b', 'd')
val res = arr1.contentDeepEquals(arr2)
println(res)
Результат выполнения кода:
Boolean false
Пример
Глубокое сравнение вложенных массивов:
val arr1 = arrayOf(arrayOf(1, 2), arrayOf(3, 4))
val arr2 = arrayOf(arrayOf(1, 2), arrayOf(3, 4))
val res = arr1.contentDeepEquals(arr2)
println(res)
Результат выполнения кода:
Boolean true
Пример
Сравнение с null значениями:
val arr1: Array<Int>? = null
val arr2: Array<Int>? = null
val res = arr1.contentDeepEquals(arr2)
println(res)
Результат выполнения кода:
Boolean true
Пример
Сравнение примитивных массивов:
val arr1 = intArrayOf(1, 2, 3)
val arr2 = intArrayOf(1, 2, 3)
val res = arr1.contentDeepEquals(arr2)
println(res)
Результат выполнения кода:
Boolean true
Смотрите также
-
функцию
contentEquals,
которая выполняет поверхностное сравнение массивов -
функцию
contentDeepHashCode,
которая вычисляет хэш-код для глубокого сравнения -
функцию
contentDeepToString,
которая преобразует массив в строку с учетом вложенности -
функцию
equals,
которая выполняет обычное сравнение объектов