glo*_*loo 3 hashset hashable swift
除了是一个唯一的整数外,是否有任何性能考虑因素可以选择一个可以插入到?hashValue中的swift Hashable类型Set?例如,我选择的整数值的大小会影响后备数组的大小吗?即,如果我分配hashValue的4000一个Hashable类型,并插入到一个Set将所述背衬阵列必须至少4000在长度?
hashValue不必是独一无二的.在绝大多数情况下,它不能是唯一的(任何大于64位的类型都必然具有比其散列更多的可能状态).您不选择整数的大小.它将永远是Int(这是机器字大小).
hashValue但是,应该很快,理想情况下是O(1).它通常用于帮助优化相等性检查(可能非常慢).
最简单的实现hashValue是:
var hashValue: Int { return 1 }
Run Code Online (Sandbox Code Playgroud)
这是一个非常有效的哈希.它不是一个特别好的哈希,但它满足所有要求.计算速度快,所有相等的对象都具有相等的哈希值(这是一个要求;反之则不是必需的:相等的哈希值可能并不意味着相等的对象).
| 归档时间: |
|
| 查看次数: |
349 次 |
| 最近记录: |