代码
//Swift 的Set类型没有确定的顺序,为了按照特定顺序来遍历一个Set中的值可以使用sorted()方法,它将返回一个有序数组,这个数组的元素排列顺序由操作符'<'对元素进行比较的结果来确定.
for item in stringSet.sorted() {
print(item)
}
//MARK:集合操作
/*
使用intersection(_:)方法根据两个集合中都包含的值创建的一个新的集合。
使用symmetricDifference(_:)方法根据在一个集合中但不在两个集合中的值创建一个新的集合。
使用union(_:)方法根据两个集合的值创建一个新的集合。
使用subtracting(_:)方法根据不在该集合中的值创建一个新的集合
*/
let a:Set = [1,2,3,4,5]
let b:Set = [6,7,8]
let c:Set = [2,3,7,8]
a.intersection(b).sorted()
print(a.intersection(b).sorted())
a.symmetricDifference(b).sorted()
a.union(b).sorted()
a.subtracting(b).sorted()
//MARK:集合成员关系和相等
/*
使用“是否相等”运算符(==)来判断两个集合是否包含全部相同的值。
使用isSubset(of:)方法来判断一个集合中的值是否也被包含在另外一个集合中。
使用isSuperset(of:)方法来判断一个集合中包含另一个集合中所有的值。
使用isStrictSubset(of:)或者isStrictSuperset(of:)方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等。
使用isDisjoint(with:)方法来判断两个集合是否不含有相同的值(是否没有交集)。
*/
let setA:Set = [1,2,3]
let setB:Set = [3]
let setC:Set = [2,4]
if setB.isSubset(of: setA) {
print("A 包含 B (isSubset)")
}else{
print("A bu包含 B")
}
if setA.isSuperset(of: setB) {
print("A (isSuperset) 包含 B")
}else{
print("A bu包含 B")
}
setB.isStrictSubset(of: setA)
setA.isStrictSuperset(of: setB)
setA.isDisjoint(with: setC)
if setA.isDisjoint(with: setC) {//判断两个集合是否不含有相同的值(是否没有交集)。
print("A 和 C 没有交集")
}else{
print("A 和 C 有交集")
}
if setB.isDisjoint(with: setC) {//判断两个集合是否不含有相同的值(是否没有交集)。
print("B 和 C 没有交集")
}else{
print("B 和 C 有交集")
}