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