当我说顺序时 - 我的意思是编译器选择显示结果的顺序,我知道字典没有像数组那样的索引。
我有以下字典:
let groups :Dictionary<String,AnyObject> = [
"Data": ["Save", "Restore"],
"Load Tabs": ["Reload Tabs when selecting tab"],
"Privacy": ["Set Passcode"],
"About Me": ["Twitter", "LinkedIn"]]
但控制台显示它显示如下:
[“隐私”: (
“设置密码”
), “加载选项卡”: (
“选择选项卡时重新加载选项卡”
), “数据”: (
节省,
恢复
), “关于我”: (
推特,
领英
)]
如您所见,顺序不同,但是当我更改字典代码的顺序时,输出仍然相同。
那么有人可以帮我澄清一下,以便我更好地理解这是如何实现的吗?我并不是试图操纵字典,而是试图理解输出是如何确定的。
如果键没有设定的顺序,那么每次字典给出输出时它不应该随机出现吗?
Dictionary
s 操作于Hashable
键并使用实现哈希表,一种常用的表示关联数组的方法O(1)
抬头。哈希表通常按少量键值对(低于存储桶阈值)的哈希码的整数值排序,然后按反向插入顺序排序。这意味着在大多数情况下,您不能依赖哈希表以任何合理或可预测的顺序进行排序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)