Свойство hashCode
int hashCodeХеш-код этого объекта.
Хеш-код — это целое число, представляющее состояние объекта, которое влияет на сравнения ==.
Все объекты имеют хеш-коды. По умолчанию хеш-код представляет только идентичность объекта, так же как и по умолчанию == реализация рассматривает объекты равными только в случае их тождества (см. identityHashCode).
Если == переопределён для использования состояния объекта вместо этого, хеш-код также должен быть изменён, чтобы отразить это состояние.
Хеш-коды должны быть одинаковыми для объектов, которые равны друг другу в соответствии с ==. Хеш-код объекта должен меняться только в том случае, если объект меняется таким образом, что это влияет на равенство. Больше никаких требований к хеш-кодам нет. Они не должны быть согласованными между выполнениями одной и той же программы, и нет гарантий распределения.
Объекты, которые не равны, могут иметь одинаковый хеш-код, и технически даже все экземпляры могут иметь одинаковый хеш-код, но если коллизии происходят слишком часто, это может снизить эффективность основанных на хеш-функциях структур данных, таких как HashSet или HashMap.
Если подкласс переопределяет hashCode, он также должен переопределить оператор ==, чтобы сохранить согласованность.
Исходный код
external int get 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-core/bool/hashCode.html