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