Junior — Middle
Koje vrste podataka ili objekata mogu služiti kao ključevi u rečnicima ili hash tabelama?
sobes.tech АИ
Одговор од АИ
У речницима (dictionary) или хеш табелама, кључеви могу бити објекти који испуњавају следеће захтеве:
- Имају исправно реализоване методе поређења једнакости (
equalsу Јава,isEqualу Swift) и израчунавања хеш-кода (hashCodeу Јава). - Јесу неизменљиви (immutable) или барем не мењају се након што су коришћени као кључ, како би се избегли проблеми са претрагом.
У iOS (Swift), у речницима (Dictionary) обично се користе типови који одговарају протоколу Hashable. Ови типови могу бити:
- Стандардни типови:
String,Int,Double,Bool. - Кориснички дефинисане структуре или класе које имплементирају протокол
Hashable.
Пример:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Стога, кључеви треба да буду хешабилни и неизменљиви за исправан рад речника.