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

Функция contentHashCode

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

Импорт

import kotlin.collections.contentHashCode

Синтаксис

fun <T> Array<out T>.contentHashCode(): Int
fun ByteArray.contentHashCode(): Int
fun ShortArray.contentHashCode(): Int
fun IntArray.contentHashCode(): Int
fun LongArray.contentHashCode(): Int
fun FloatArray.contentHashCode(): Int
fun DoubleArray.contentHashCode(): Int
fun BooleanArray.contentHashCode(): Int
fun CharArray.contentHashCode(): Int

Пример

Сравним работу hashCode() и contentHashCode() для массива строк:

val arr1 = arrayOf("a", "b", "c") val arr2 = arrayOf("a", "b", "c") println("arr1.hashCode() = " + arr1.hashCode()) println("arr2.hashCode() = " + arr2.hashCode()) println("arr1.contentHashCode() = " + arr1.contentHashCode()) println("arr2.contentHashCode() = " + arr2.contentHashCode())

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

arr1.hashCode() = 1915910606 arr2.hashCode() = 930990596 arr1.contentHashCode() = 126145 arr2.contentHashCode() = 126145

Пример

Продемонстрируем работу функции с массивом целых чисел:

val numbers = intArrayOf(1, 2, 3, 4, 5) val hashCode = numbers.contentHashCode() println("Array: " + numbers.contentToString()) println("Content Hash Code: " + hashCode)

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

Array: [1, 2, 3, 4, 5] Content Hash Code: 23760081

Пример

Покажем, что хэш-код меняется при изменении содержимого массива:

val chars = charArrayOf('a', 'b', 'c') val originalHash = chars.contentHashCode() println("Original Hash: " + originalHash) chars[2] = 'd' val modifiedHash = chars.contentHashCode() println("Modified Hash: " + modifiedHash)

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

Original Hash: 126142 Modified Hash: 126143

Область применения

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

  • Array - массив объектов любого типа
  • ByteArray - массив байтов
  • ShortArray - массив коротких целых чисел
  • IntArray - массив целых чисел
  • LongArray - массив длинных целых чисел
  • FloatArray - массив чисел с плавающей точкой одинарной точности
  • DoubleArray - массив чисел с плавающей точкой двойной точности
  • BooleanArray - массив логических значений
  • CharArray - массив символов

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

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

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