Свойство hashCode
int hashCodeКод хэширования для этого объекта.
Код хэширования — это целое число, представляющее состояние объекта, которое влияет на == сравнения.
Все объекты имеют коды хэширования. Значение по умолчанию кода хэширования отражает только идентичность объекта, так же, как и по умолчанию == реализация рассматривает объекты равными только при их идентичности (см. identityHashCode).
Если == переопределяется для использования состояния объекта вместо этого, код хэширования также должен быть изменён, чтобы отразить это состояние.
Коды хэширования должны быть одинаковыми для объектов, которые равны друг другу в соответствии с ==. Код хэширования объекта должен изменяться только в том случае, если объект изменяется таким образом, что это влияет на равенство. Других требований к кодам хэширования нет. Они не должны быть согласованными между выполнениями одной и той же программы, и нет никаких гарантий распределения.
Объекты, которые не равны, могут иметь одинаковый код хэширования, и даже технически разрешается, что все экземпляры имеют одинаковый код хэширования, но если коллизии происходят слишком часто, это может снизить эффективность структур данных на основе хэширования, таких как HashSet или HashMap.
Если подкласс переопределяет hashCode, он также должен переопределить оператор ==, чтобы сохранить согласованность.
Исходный код
int get hashCode native "JSObject_hashCode";
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-indexed_db/CursorWithValue/hashCode.html