Функция contentDeepHashCode

Функция contentDeepHashCode вычисляет хеш-код для коллекций, рекурсивно учитывая хеш-коды всех вложенных элементов. Применяется к массивам и коллекциям, содержащим другие коллекции или массивы. Для простых коллекций без вложенности рекомендуется использовать contentHashCode.

Импорт

kotlinimport kotlin.collections.contentDeepHashCode

Синтаксис

kotlinfun Array<*>.contentDeepHashCode(): Int
kotlinfun Iterable<*>.contentDeepHashCode(): Int
kotlinfun Map<*, *>.contentDeepHashCode(): Int

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

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

Пример

Вычислим хеш-код для вложенного массива:

kotlinval arr = arrayOf(
  arrayOf(1, 2, 3),
  arrayOf(4, 5, 6)
)
val res = arr.contentDeepHashCode()
println(res)

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

kotlinInt 30817

Пример

Вычислим хеш-код для списка с вложенными массивами:

kotlinval list = listOf(
  arrayOf('a', 'b', 'c'),
  arrayOf('d', 'e', 'f')
)
val res = list.contentDeepHashCode()
println(res)

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

kotlinInt 30817

Пример

Вычислим хеш-код для ассоциативного массива с вложенными коллекциями:

kotlinval map = mapOf(
  "first" to listOf(1, 2, 3),
  "second" to listOf(4, 5, 6)
)
val res = map.contentDeepHashCode()
println(res)

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

kotlinInt 30817

Пример

Сравнение с обычным contentHashCode для вложенных структур:

kotlinval nestedArray = arrayOf(arrayOf(1, 2), arrayOf(3, 4))

val deepHash = nestedArray.contentDeepHashCode()
val simpleHash = nestedArray.contentHashCode()

println("Deep hash: $deepHash")
println("Simple hash: $simpleHash")

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

kotlinDeep hash: 30817
Simple hash: 113429

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

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