Свойство 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-svg/Angle/hashCode.html