Для переопределения операции сравнения == и hashCode необходимо реализовать их в классе. Для этого часто используется пакет equatable.
dart
Без equatable реализация будет выглядеть так:
dart
При переопределении == всегда обязательно переопределять и hashCode, чтобы сохранить контракт между ними: если два объекта равны по ==, то их хеш-коды должны быть равны. Обратное неверно.
Использование:
dart