Геттер hashCode
Геттер hashCode возвращает целое число,
которое является хеш-кодом объекта. Этот код
используется для быстрого сравнения объектов
и поиска их в коллекциях, основанных на хеш-таблицах,
таких как Set и Map. По умолчанию
геттер возвращает уникальное значение, основанное
на адресе объекта в памяти, однако его можно
переопределить для обеспечения логического
равенства объектов.
Синтаксис
object.hashCode
Пример
Давайте получим хеш-код строки и выведем его в консоль:
void main()
{
String str = 'abcde';
print(str.hashCode);
}
Результат выполнения кода:
98025550
Пример
Давайте сравним хеш-коды двух одинаковых строк, чтобы убедиться, что они равны:
void main()
{
String str1 = 'abcde';
String str2 = 'abcde';
print(str1.hashCode == str2.hashCode);
}
Результат выполнения кода:
true
Пример
Давайте переопределим геттер hashCode
в пользовательском классе, чтобы он зависел
от полей объекта:
class Point
{
int x;
int y;
Point(this.x, this.y);
@override
int get hashCode => Object.hash(x, y);
}
void main()
{
Point p1 = Point(1, 2);
Point p2 = Point(1, 2);
print(p1.hashCode == p2.hashCode);
}
Результат выполнения кода:
true
Смотрите также
-
метод
toString,
который возвращает строковое представление объекта -
метод
operator ==,
который сравнивает объекты на равенство -
класс
Object,
который является базовым классом для всех объектов -
геттер
get,
который создает геттеры для доступа к полям