Junior — Middle
Koje vrste ključnih podataka su dozvoljene za korišćenje u hash tabeli?
sobes.tech АИ
Одговор од АИ
U hash tabelama (na primer, u Dart-u koji se koristi u Flutter-u) ključevi mogu biti objekti bilo kog tipa, pod uslovom da ispravno implementiraju metode hashCode i ==. Ovo je neophodno za pravilno računanje hash vrednosti i poređenje ključeva.
Obično se koriste primitivni tipovi, kao što su stringovi (String), brojevi (int), ali se mogu koristiti i prilagođene klase ako ove metode budu prepisane. Na primer:
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 map = <Person, String>{};
var p = Person('Alice', 1);
map[p] = 'Programer';
print(map[p]); // Programer
}
Dakle, ključevi moraju biti nepromenljivi i imati pravilno implementirane metode hashCode i ==.