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