OrderedDictionary 是 Swift 中有序字典数据结构的轻量级实现。
OrderedDictionary<Key: Hashable, Value>
结构体是一个通用集合,它结合了 Swift 标准库中 Dictionary
和 Array
数据结构的特性。 像 Dictionary
一样,它存储键值对,其中每个键都是唯一的,并将每个键映射到一个关联的值。 像 Array
一样,它存储这些排序的键值对,并可以通过从零开始的整数索引进行访问。
OrderedDictionary
提供了类似于 Swift 标准库中可用集合的 API,例如通过键或索引访问内容、插入和删除元素、迭代、排序、转换、过滤等。
在内部,OrderedDictionary
使用由 Dictionary
组成的后备存储来存储键值对,并使用 Array
来管理有序的键。 这当然不是可以实现的最优性能的实现,但它在重用 Swift 标准库中的大部分功能的同时完成了它的工作。
为了支持旧版本的 Swift,请参考此库的旧版本。 对于 Swift 4.2,请使用 3.x 版本;对于 Swift 4.0-4.1,请使用 2.x 版本。
Xcode 和 OS 版本的这些要求仅在库作为框架或通过 Xcode 项目集成时适用。
要使用 Swift Package Manager 安装 OrderedDictionary,请将其作为依赖项添加到您的 Package.swift
文件中
let package = Package(
...
dependencies: [
.package(url: "https://github.com/lukaskubanek/OrderedDictionary.git", from: "4.0.0")
],
...
)
要使用 Carthage 安装 OrderedDictionary,请将其作为依赖项添加到您的 Cartfile
中
github "lukaskubanek/OrderedDictionary" ~> 4.0
然后将 OrderedDictionary.xcodeproj
或 OrderedDictionary.framework
拖到您的 Xcode 项目/工作区中,并将您的目标链接到 OrderedDictionary.framework
。 确保框架 被复制 到您的应用程序程序包中。
您也可以通过 Git submodules 安装 OrderedDictionary,并将子模块中的 OrderedDictionary.xcodeproj
项目直接集成到您的 Xcode 工作区中。
尽管对 CocoaPods 的支持有很高的需求,但此库不会正式支持此分发方法。 如果您真的想通过 CocoaPods 集成此库,您可以创建和维护自定义 podspec(请参阅 这篇文章 的最后一部分)。
有关 OrderedDictionary
的 API 说明以及如何使用此数据结构的示例,请参阅文档注释或全面的测试套件。
要查看更新日志,请参阅 GitHub 的 发布页面。 如果您从 3.x 版本升级,您可能需要查看 4.0 版本 中所做的更改列表。
OrderedDictionary 由 @lukaskubanek 构建,他是 Diagrams(Mac 的原生图表编辑器)的创始人和开发者。 这种数据结构被广泛用于驱动 Diagrams 的数据模型。