在 Swift 语言简明教程(六) - 字典类型 中, 我们了解了 Swift 中字典类型的用法,现在我们来了解一下 Swift 中的集合类型 - Set。
集合可以用来存储无序,不重复的数据。
声明及初始化
1 2
| var set1:Set<Int> = [1,2,3,4] var set2 = Set(arrayLiteral: 1,2,3,4)
|
注意与Array的定义和初始化区别
简单操作
判断元素个数
使用 count 属性
判断集合是否为空
使用 isEmpty 属性
1 2 3
| if set1.isEmpty { print("集合为空") }
|
判断是否包含某元素
1 2 3
| if set1.contains(1){ print("集合包含") }
|
添加元素
删除元素
注意:这里的1不是序号(下标),是1这个元素
删除所有元素
集合操作
假设有两个集合
1 2
| var set3:Set<Int> = [1,2,3,4] var set4:Set<Int> = [1,2,5,6]
|
取交集
1
| var setInter = set3.intersection(set4)
|
运算以后,setInter 将包含 {2, 1}
取并集
1
| var setUni = set3.union(set4)
|
运算以后,setUni 将包含 {4, 5, 6, 3, 1, 2}
取补集
1
| var setEx = set3.symmetricDifference(set4)
|
运算以后,setEx 将包含 {4, 6, 3, 5}
子集判断
假设有如下的几个集合:
1 2 3 4
| var set5:Set = [1,2] var set6:Set = [2,3] var set7:Set = [1,2,3] var set8:Set = [1,2,3]
|
- 判断是否是某个集合的子集 set5是set7的子集 返回ture
- 判断是否是某个集合的超集 set7是set5的超集 返回ture
1
| set7.isSuperset(of: set5)
|
- 判断是否是某个集合的真子集
set5是set7的真子集 返回ture
1
| set5.isStrictSubset(of: set7)
|
set7不是set8的真超集 返回false
1
| set7.isStrictSuperset(of: set8)
|
遍历元素
可以使用 for 语句进行遍历
1 2 3
| for item in set7 { print(item) }
|
也可以获取元素的下标
1 2 3
| for index in set7.indices { print(set7[index]) }
|
还可以设定排序后进行遍历
1 2 3
| for item in set7.sorted(by: >){ print(item) }
|
下一步
接下来,我们将简要的介绍 Swift 中的函数 - Swift 语言简明教程(八) - 函数。