集合中的项目顺序已更改,Set,Swift

时间:2016-07-24 19:46:30

标签: ios swift set

我创建了2个包含String的集合,如下所示

 let set1 : Set<String>   =   (["07:00", "QShift", "PRN"])
 let set2 : Set<String>   =   (["07:15", "QShift", "PRN"])

首先,我认为每个集合中字符串的顺序与添加时的顺序完全相同。但是我错了set1,控制台给了我这个

Printing description of set1:
▿ 3 elements
  - [0] : "QShift"
  - [1] : "PRN"
  - [2] : "07:00" { ... }

Printing description of set2:
▿ 3 elements
  - [0] : "07:15"
  - [1] : "QShift"
  - [2] : "PRN" { ... }

有谁知道为什么set1中的字符串顺序已更改为QShift, PRN, 07:00

2 个答案:

答案 0 :(得分:8)

因为Set是无序数据结构。

Set参考:

  

集合在集合中存储相同类型的不同值,没有定义的顺序。当项目的顺序不重要时,或者当您需要确保项目只出现一次时,您可以使用集合而不是数组。

您应该查看NSOrderedSet类引用,了解更多API:

  

NSOrderedSet及其子类NSMutableOrderedSet将编程接口声明为有序的对象集合。

答案 1 :(得分:0)

OrderedSet On Github.

应该适合您的需要。