НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
502 of 1310 menu

Функция contentDeepHashCode

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

Импорт

import kotlin.collections.contentDeepHashCode

Синтаксис

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

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

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

  • Array - массивы любого типа
  • List - списки
  • Set - множества
  • Map - ассоциативные массивы
  • MutableList - изменяемые списки
  • MutableSet - изменяемые множества
  • MutableMap - изменяемые ассоциативные массивы

Пример

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

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

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

Int 30817

Пример

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

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

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

Int 30817

Пример

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

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

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

Int 30817

Пример

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

val nestedArray = arrayOf(arrayOf(1, 2), arrayOf(3, 4)) val deepHash = nestedArray.contentDeepHashCode() val simpleHash = nestedArray.contentHashCode() println("Deep hash: $deepHash") println("Simple hash: $simpleHash")

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

Deep hash: 30817 Simple hash: 113429

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

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