集合特点:
- 无序的数据集
- 排重, 数据唯一
- 提供集合操作
- 快速查找
例如:var skills: Set<String> = ["swift", "OC"]
var skillOfA = Set(["swift", "OC"])
var skillOfB = Set(["CSS", "HTML", "JS"])
var skillOfD = Set(["CSS"])
集合操作
-
集合操作 加上
Inplace
就会改变操作者本身的值
并集
-
union
并集操作, 不改变操作的集合
-
unionInplace
并集操作, 改变操作的集合
交集
intersect 交集操作, 不改变操作的集合
intersectInPlace 交集操作, 改变操作的集合
减法
substract 减法操作, 不改变操作的集合
substractInPlace 减法操作, 改变操作的集合
亦或
- exclusiverOr 亦或操作, 不改变操作的集合
- exclusiverOrInPlace 亦或操作, 改变操作的集合
判断操作
// 子集操作, 真子集
skillOfD.isSubset(of: skillOfB)
skillOfD.isStrictSubset(of: skillOfB)
// 超集(跟子集相反), 真超集
skillOfB.isSuperset(of: skillOfD)
skillOfB.isStrictSuperset(of: skillOfD)
// 判断相离集合
skillOfA.isDisjoint(with: skillOfB)
skillOfD.isDisjoint(with: skillOfB)