Swift有序集

Ben*_*ohn 16 set swift

Swift有一个有序的集合类型吗?如果没有,如果我想使用它,我有什么选择?

标准库Set是无序的,如文档中所示:

数组是有序的值集合.集是唯一值的无序集合.字典是键值关联的无序集合.

然而,适合于实现许多数据结构的有序集合(和字典)是已知的,特别是平衡二叉树红黑树.

作为一个例子,c ++的stl具有有序集和映射,并允许使用下限和上限对它们进行范围查询.

我知道一个集合的成员可以被分类到一个数组中,但我追求的是一个带有O(log(n))插入,删除和查询的数据结构.

Tom*_*ton 16

Swift没有本机有序集类型.如果您使用的是iOS,则可以NSOrderedSet在Swift中使用.如果没有,您有机会编写自己的有序集数据结构.

  • `NSOrderedSet`适用于包含Foundation的任何平台.它不仅仅是iOS. (12认同)
  • 虽然您可以在 swift 中使用“NSOrderedSet”,但它始终具有“Any”类型,因为它不支持泛型 (3认同)
  • 谢谢你,汤姆——我目前正在阅读这个主题。尤达说:“有很多东西要知道。” (2认同)

Yan*_*ang 5

2021 年 4 月 6 日,发布了一个新的 Swift 包:Swift-Collection,其中实现了另外三个数据结构。( OrderedSet, OrderedDictionary, Deque)

但是,此包处于 1.0 之前的发布状态。因此,它可能不稳定。

Swift 博客:发布 Swift 集合