Junior — Middle
Bir hash tablosunda kullanılmasına izin verilen anahtar veri türleri nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Hash tablolarında (örneğin, Flutter'da kullanılan Dart'ta) anahtarlar, hashCode ve == metodlarını doğru şekilde uygularlarsa, herhangi bir türde nesne olabilir. Bu, doğru hash değeri hesaplaması ve anahtarların karşılaştırılması için gereklidir.
Genellikle, dizgi (String), sayı (int) gibi temel türler kullanılır, ancak bu metodlar üzerine yazılırsa, özel sınıflar da kullanılabilir. Örneğin:
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] = 'Geliştirici';
print(map[p]); // Geliştirici
}
Bu nedenle, anahtarlar değiştirilemez olmalı ve hashCode ile == metodları doğru şekilde uygulanmış olmalıdır.