Repolode
apple

apple/swift-collections

为 Swift 开发者提供双端队列、堆、有序集合与字典、位集合等常用数据结构的开源包。

Star
4,547
Fork
436
未关闭 Issue
70
最近提交
昨天

这是什么?

Swift Collections 是一个为 Swift 语言提供数据结构实现的开源包,对标准库中的 Array、Set 和 Dictionary 做了补充。DequeModule 提供基于环形缓冲区的双端队列,HeapModule 提供可用作优先队列的最小-最大堆,OrderedCollections 则提供保持插入顺序的 OrderedSet 和 OrderedDictionary。

其他模块包括 BitCollections(更紧凑的位集合 BitSet 与 BitArray)、HashTreeCollections(基于 CHAMP 前缀树实现的持久化哈希集合 TreeSet 与 TreeDictionary,副本之间共享未修改的部分),以及 BasicContainers(支持所有权语义的 UniqueArray 与 RigidArray)。Collections 模块可通过一条 import 语句引入上述主要稳定类型。

该包遵循语义化版本号,需要较新的 Swift 工具链,每个版本的最低要求见文档表格。SortedCollections、Robin Hood 哈希容器以及容器协议预览等实验性功能需通过可选的包特性(package trait)开启,不属于稳定 API。

核心功能

  • 01提供双端队列、堆、OrderedSet 与 OrderedDictionary 等常用集合类型。
  • 02提供 BitSet 与 BitArray,用位存储实现更紧凑的集合。
  • 03提供持久化的 TreeSet 与 TreeDictionary,副本之间共享未修改的部分。
  • 04通过 Collections 模块一次性引入主要稳定类型。
  • 05遵循语义化版本,并标明每个版本所需的最低 Swift 工具链。

适用场景

  • 在 Swift 应用中需要保持插入顺序的字典或集合时使用。
  • 在 Swift 服务端或应用中实现优先队列或双端队列。
  • 用位集合类型更紧凑地存储大量整数或布尔值。
  • 借助持久化树结构在多个状态之间共享字典副本。

快速上手

  1. 1

    在 Package.swift 中将 swift-collections 添加为依赖包,具体方法见 README 的使用说明

使用前须知

  • 包特性(package traits)后的实验性功能不稳定,可能随时发生不兼容变更或被移除。
  • 需要 Swift 工具链,因此仅适用于 Swift 项目。

标签

#data-structures#collections#queue#heap#ordered-dictionary#bitset#hashing#collection#container#deque

常见问题

swift-collections 是什么?
为 Swift 开发者提供双端队列、堆、有序集合与字典、位集合等常用数据结构的开源包。 Swift Collections 是一个为 Swift 语言提供数据结构实现的开源包,对标准库中的 Array、Set 和 Dictionary 做了补充。DequeModule 提供基于环形缓冲区的双端队列,HeapModule 提供可用作优先队列的最小-最大堆,OrderedCollections 则提供保持插入顺序的 OrderedSet 和 OrderedDictionary。
swift-collections 可以免费使用吗?用的什么许可证?
swift-collections 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
swift-collections 还在维护吗?
活跃维护中。swift-collections 最近一次提交是在 2026年11月6日。
swift-collections 适合用来做什么?
在 Swift 应用中需要保持插入顺序的字典或集合时使用。 在 Swift 服务端或应用中实现优先队列或双端队列。 用位集合类型更紧凑地存储大量整数或布尔值。 借助持久化树结构在多个状态之间共享字典副本。
swift-collections 怎么安装和运行?
在 Package.swift 中将 swift-collections 添加为依赖包,具体方法见 README 的使用说明
在哪里获取 swift-collections?
源代码和安装说明在 GitHub 上:https://github.com/apple/swift-collections

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目