Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift-什么决定字典集合的顺序?_Swift_Dictionary_Key - Fatal编程技术网

Swift-什么决定字典集合的顺序?

Swift-什么决定字典集合的顺序?,swift,dictionary,key,Swift,Dictionary,Key,当我说顺序时——我指的是编译器选择显示结果的顺序,我知道字典没有数组那样的索引 我有以下字典: let groups :Dictionary<String,AnyObject> = [ "Data": ["Save", "Restore"], "Load Tabs": ["Reload Tabs when selecting tab"], "Privacy": ["Set Passcode"], "About Me": ["Twitter", "LinkedIn"]] let组:字

当我说顺序时——我指的是编译器选择显示结果的顺序,我知道字典没有数组那样的索引

我有以下字典:

let groups :Dictionary<String,AnyObject> = [
"Data": ["Save", "Restore"],
"Load Tabs": ["Reload Tabs when selecting tab"],
"Privacy": ["Set Passcode"],
"About Me": ["Twitter", "LinkedIn"]]
let组:字典=[
“数据”:[“保存”、“恢复”],
“加载选项卡”:[“选择选项卡时重新加载选项卡”],
“隐私”:[“设置密码”],
“关于我”:[“推特”、“LinkedIn”]]
但控制台显示如下所示:

[“隐私”:( “设置密码” ),“加载选项卡”:( “选择选项卡时重新加载选项卡” )“数据”:( 拯救 恢复 ),“关于我”:( 啁啾 LinkedIn )]

正如您所看到的,顺序是不同的,但是当我更改字典代码的顺序时,输出仍然是相同的

所以,有人能为我澄清一下,让我更好地理解这是如何实现的吗?我不是在试图操纵字典,而是试图理解输出是如何确定的


如果键没有设置顺序,那么它是否应该在字典每次输出时都随机出现

字典
散列
键进行操作,并使用一种常用的方法来实现,该方法通过
O(1)
查找来表示关联数组。对于少量的键值对(低于bucket阈值),哈希表通常按哈希代码的整数值排序,之后按相反的插入顺序排序。这意味着在大多数情况下,您不能依靠哈希表以任何合理或可预测的顺序进行排序