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

2023-11-23

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

我有以下字典:

let groups :Dictionary<String,AnyObject> = [
"Data": ["Save", "Restore"],
"Load Tabs": ["Reload Tabs when selecting tab"],
"Privacy": ["Set Passcode"],
"About Me": ["Twitter", "LinkedIn"]]

但控制台显示它显示如下:

[“隐私”: ( “设置密码” ), “加载选项卡”: ( “选择选项卡时重新加载选项卡” ), “数据”: ( 节省, 恢复 ), “关于我”: ( 推特, 领英 )]

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

那么有人可以帮我澄清一下,以便我更好地理解这是如何实现的吗?我并不是试图操纵字典,而是试图理解输出是如何确定的。

如果键没有设定的顺序,那么每次字典给出输出时它不应该随机出现吗?


Dictionarys 操作于Hashable键并使用实现哈希表,一种常用的表示关联数组的方法O(1)抬头。哈希表通常按少量键值对(低于存储桶阈值)的哈希码的整数值排序,然后按反向插入顺序排序。这意味着在大多数情况下,您不能依赖哈希表以任何合理或可预测的顺序进行排序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift - 是什么决定了字典集合的顺序? 的相关文章

随机推荐

  • 如何向 axlsx 中的单元格添加超链接?

    随着spreadsheet宝石 你可以跑Spreadsheet Link new http hyperlinkhere com Some words 制作一个电子表格 其中的单元格包含字符串 Some Words 并带有指向 的超链接 ht
  • 如何使用 C# SendKeys 以编程方式按下 Windows 键

    基本上我想在代码中模拟用户单击 Windows 键 我知道有 SendKeys 如果我得到了按键的句柄 它允许我将按键发送到窗口 但我不知道我需要获取什么句柄才能发送 Windows 按键命令 例如 Windows 键 L 读过一点后 似乎
  • Rails render_to_string 在部分视图中给出错误

    我正进入 状态ActionView MissingTemplate在代码下方使用带有部分视图的 render to string 方法时出错 bizz render to string partial gt biz new layout g
  • SQL Server Management Studio 无法连接

    我已经安装了 SQL Server Management Studio 2014 在 连接到服务器 窗口中 我选择服务器类型为 数据库引擎 服务器名称为 本地 但是当我尝试连接时 显示 n 错误 标题 连接到服务器 无法连接到 附加信息 与
  • Telnet IAC命令应答

    我正在尝试与套接字协商 telnet 连接 套接字正在工作 但服务器告诉我 login The 表示 255 253 1 255 253 31 255 251 1 255 251 3 我阅读了所有 RFC 文档 但我不明白我应该响应什么才能
  • 如何使用 CMake 在链接命令行末尾添加标志?

    我有一个 CMake 的问题无法检测到 pthread 作为一种解决方法 我尝试过 set CMAKE EXE LINKER FLAGS CMAKE EXE LINKER FLAGS lpthread 然而 这插入 lpthread在错误的
  • Java 8 偏移日期解析

    我需要解析以下格式的字符串2015 01 15 05 00UTC 中的 LocalDate 或其他 问题是下面的代码 System out println LocalDate parse 2015 01 15 05 00 DateTimeF
  • 独立数据库

    我目前正在 Net 中设计一个小型应用程序 过去我一直使用 MSAccess 作为独立数据库 可以随该程序一起提供 但我想知道在当今时代是否没有替代解决方案 可以轻松集成到 Net 应用程序中 对用户透明 并且在处理大量数据时可能具有更好的
  • 拖动和平移完成后获取中心坐标

    我想跟踪地图中心的坐标 到目前为止我一直在使用这个 On Drag End google maps event addListener map dragend function map center coords latitude html
  • Python 帮助读取 csv 文件由于行结束而失败

    我正在尝试创建此脚本 该脚本将检查计算机主机名 然后在主列表中搜索该值以返回 csv 文件中的相应值 然后打开另一个文件并进行查找替换 我知道这应该很容易 但以前没有在 python 中做过这么多 这是我到目前为止所拥有的 masterli
  • Rust是如何实现反射的?

    铁锈具有Any特点 但它也有 不为不使用的东西付费 的政策 Rust是如何实现反射的 我的猜测是 Rust 使用惰性标记 每个类型最初都是未分配的 但后来如果该类型的实例被传递给需要一个Any特征 类型被分配一个TypeId 或者 Rust
  • Flink 键控流密钥为空

    我正在尝试在 Flink 中的 KeyedStream 上执行映射操作 stream map new JsonToMessageObjectMapper keyBy keyfield map new MessageProcessorStat
  • 当应用程序在后台运行时 Android 传感器正在监听

    即使应用程序不在前台 是否可以连续跟踪 Android 上的运动传感器事件 如果是的话 电池的消耗是什么 一位客户询问是否可以编写一个应用程序 在人 跌倒 时启动一个动作 这基本上意味着不断监听运动传感器的快速移动 首先 您绝对可以在后台监
  • 无法在清单资源中找到该报告

    我将所有水晶报表保存在一个文件夹中 VOUCHERS gt SALE gt BILLFORMATS 例如 第一个报告的位置是 VOUCHERS gt SALE gt BILLFORMATS gt BillFormat1 rpt Vegi M
  • 如何绘制按日期聚合的 pandas 数据框

    我有这个数据框 df pd DataFrame 2017 01 14 1 2017 01 14 30 2017 01 16 216 2017 02 17 23 2017 02 17 2 2017 03 19 745 2017 03 19 3
  • 下面的掩码输入问题如何解决?

    我有一个脚本来屏蔽文本框 在这里它 我还有一个脚本可以在单击按钮时动态添加文本框
  • 将国家/地区名称转换为国家/地区代码缩写 php [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 有没有办法将国家名称转换为国家代码缩写 或者一些php函数 这样当 澳大利亚 时
  • 当我尝试在驱动器中搜索时,程序抛出 NullPointerException?

    我编写了一个程序来查找文件或目录 当我尝试使用 in 搜索文件时 它工作正常目录 example java FileSearch abc txt f xyz但是当我尝试从中搜索文件时本地驱动器比程序抛出异常 java FileSearch
  • C# 迭代枚举? (索引 System.Array)

    我有以下代码 Obtain the string names of all the elements within myEnum String names Enum GetNames typeof myEnum Obtain the val
  • Swift - 是什么决定了字典集合的顺序?

    当我说顺序时 我的意思是编译器选择显示结果的顺序 我知道字典没有像数组那样的索引 我有以下字典 let groups Dictionary