Назад к вопросам
Junior — Middle
131
Какие способы позволяют обеспечить уникальность элементов при использовании структуры данных set?
Компании, где спрашивали
Grotem
Ответ от нейросети
sobes.tech AI
В Flutter (Dart) для обеспечения уникальности элементов в структуре данных Set используются следующие способы:
- Использование встроенного типа
Set, который по умолчанию хранит уникальные элементы. При добавлении элемента проверяется его равенство с уже существующими. - Переопределение методов
==иhashCodeв пользовательских классах. Это необходимо, чтобыSetмог корректно сравнивать объекты и определять их уникальность.
Пример:
class Person {
final String name;
final int id;
Person(this.name, this.id);
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is Person && runtimeType == other.runtimeType && id == other.id;
@override
int get hashCode => id.hashCode;
}
void main() {
var people = <Person>{};
people.add(Person('Alice', 1));
people.add(Person('Bob', 2));
people.add(Person('Alice', 1)); // не добавится, так как id совпадает
print(people.length); // 2
}
Таким образом, уникальность обеспечивается корректной реализацией сравнения и хэширования объектов.