Set是用来存储相同类型并且无序的集合类型,这是一个简单的Set集合:
var set:Set = [“1”,”2”,”3″]
set是一个Set类型的集合,集合中只能出现String类型的数据,如果放入了其他类型,会报错。但是如果没有指定集合中的数据类型,那就没有关系。
var set:Set = [“1”,”2”,”3”,4,5,6,7]
Set集合另外一个特性就是处理相同值,当一个Set中出现了相同值,不会抛出异常,只使用一个值。
letset:Set= ["1","2","3","4","1"]
print(set,"count:",set.count) // ["4", "2", "1", "3"] count: 4
你可以通过调用Set的remove(_:)方法去删除一个元素,如果该值是该Set的一个元素则删除该元素并且返回被删除的元素值,否则如果该Set不包含该值,则返回nil。另外,Set中的所有元素可以通过它的removeAll()方法删除。
varset:Set= ["1","2","3","4"]
if let removedSet = set.remove("3") {
print("\(removedSet)? I'm over it.")
}else{
print("I never much cared for that.")
}
使用contains(_:)方法去检查Set中是否包含一个特定的值:
let set:Set= ["1","2","3","4"]
if set.contains("3") {
print("contains 3")
}else{
print("not found")
}
遍历一个集合
let set:Set= ["1","2","3","4","1"]
for item in set {
print(item)
}
集合操作
使用intersect(_:)方法根据两个集合中都包含的值创建的一个新的集合。
let set1:Set= [1,2,3,4]
let set2:Set= [3,4,5,6]
let intersectSet = set1.intersect(set2)
print(intersectSet) // [3, 4]
使用exclusiveOr(_:)方法根据在一个集合中但不在两个集合中的值创建一个新的集合。
let set1:Set= [1,2,3,4]
let set2:Set= [3,4,5,6]
let exclusiveOrSet = set1.exclusiveOr(set2)
print(exclusiveOrSet) // [5, 6, 2, 1]
使用union(_:)方法根据两个集合的值创建一个新的集合。
let set1:Set= [1,2,3,4]
let set2:Set= [3,4,5,6]
let unionSet = set1.union(set2)
print(unionSet) // [5, 6, 2, 3, 1, 4]
使用subtract(_:)方法根据不在该集合中的值创建一个新的集合。
let set1:Set= [1,2,3,4]
let set2:Set= [3,4,5,6]
let subtractSet = set1.subtract(set2)
print(subtractSet) //[2, 1]
使用“是否相等”运算符(==)来判断两个集合是否包含全部相同的值。
let set1:Set= [1,2]
let set2:Set= [4,3,2,1]
if(set1 == set2)
{
print("true");
}
else
{
print("false")
}
使用isSubsetOf(_:)方法来判断一个集合中的值是否也被包含在另外一个集合中。
let set1:Set= [1,2]
let set2:Set= [4,3,2,1]
let bool = set1.isSubsetOf(set2)
print(bool) // true
使用isSupersetOf(_:)方法来判断一个集合中包含另一个集合中所有的值。
let set1:Set= [1,2]
let set2:Set= [4,3,2,1]
let bool = set2.isSupersetOf(set1) // true
let bool = set1.isSupersetof(set2) // false
print(bool)