Sobes.tech
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"

Стога, кључеви треба да буду хешабилни и неизменљиви за исправан рад речника.