Функция hashCode

Функция hashCode возвращает целочисленное значение, представляющее хэш-код элемента перечисления (enum). В Kotlin все enum-классы автоматически получают реализацию этой функции, которая возвращает стабильное значение, соответствующее порядковому номеру элемента.

Синтаксис

kotlinfun hashCode(): Int

Пример

Получим хэш-код элемента enum:

kotlinenum class Direction { NORTH, SOUTH, WEST, EAST }

val dir = Direction.NORTH
val res = dir.hashCode()
println(res)

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

kotlinInt 0

Пример

Сравнение хэш-кодов разных элементов enum:

kotlinenum class Color { RED, GREEN, BLUE }

val color1 = Color.RED
val color2 = Color.GREEN

println(color1.hashCode())
println(color2.hashCode())

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

kotlinInt 0
Int 1

Пример

Использование hashCode в коллекциях:

kotlinenum class Status { ACTIVE, INACTIVE, PENDING }

val set = hashSetOf(Status.ACTIVE, Status.PENDING)
println(set.contains(Status.ACTIVE))
println(Status.ACTIVE.hashCode())

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

kotlinBoolean true
Int 0

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

  • метод ordinal,
    который возвращает порядковый номер элемента enum
  • метод name,
    который возвращает имя элемента enum