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