Свойство hashCode
Код хэша для этого объекта.
Код хэша — это целое число, представляющее состояние объекта, которое влияет на сравнения с помощью operator ==.
Все объекты имеют коды хэша. По умолчанию код хэша, реализованный в Object, представляет только идентификатор объекта, так же как по умолчанию operator == считает объекты равными только если они идентичны (см. identityHashCode).
Если operator == переопределён для использования состояния объекта вместо этого, код хэша также должен быть изменён для представления этого состояния, иначе объект нельзя использовать в структурах данных на основе хэша, таких как стандартные реализации Set и Map.
Коды хэша для объектов, равных друг другу согласно operator ==, должны быть одинаковыми. Код хэша объекта должен изменяться только в том случае, если объект изменяется таким образом, что это влияет на равенство. Других требований к кодам хэша нет. Они не обязательно должны быть согласованными между выполнением одной и той же программы, и нет гарантий распределения.
Объекты, которые не равны, могут иметь одинаковый код хэша. В принципе, даже все экземпляры могут иметь один и тот же код хэша, но если коллизии случаются слишком часто, это может снизить эффективность структур данных на основе хэша, таких как HashSet или HashMap.
Если подкласс переопределяет hashCode, он также должен переопределить operator == для поддержания согласованности.
Реализация
external int get hashCode;
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/Object/hashCode.html