Set是用來存儲相同類型并且無序的集合類型,這是一個簡單的Set集合:
var set:Set = [“1”,”2”,”3″]
set是一個Set類型的集合,集合中只能出現(xiàn)String類型的數(shù)據(jù),如果放入了其他類型,會報錯。但是如果沒有指定集合中的數(shù)據(jù)類型,那就沒有關(guān)系。
var set:Set = [“1”,”2”,”3”,4,5,6,7]
Set集合另外一個特性就是處理相同值,當(dāng)一個Set中出現(xiàn)了相同值,不會拋出異常,只使用一個值。
letset:Set= ["1","2","3","4","1"]
print(set,"count:",set.count) ?// ["4", "2", "1", "3"] count: 4
你可以通過調(diào)用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(_:)方法根據(jù)兩個集合中都包含的值創(chuàng)建的一個新的集合。
let set1:Set= [1,2,3,4]
let set2:Set= [3,4,5,6]
let intersectSet = set1.intersect(set2) ?
print(intersectSet)? ? // [3, 4]
使用exclusiveOr(_:)方法根據(jù)在一個集合中但不在兩個集合中的值創(chuàng)建一個新的集合。
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(_:)方法根據(jù)兩個集合的值創(chuàng)建一個新的集合。
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(_:)方法根據(jù)不在該集合中的值創(chuàng)建一個新的集合。
let set1:Set= [1,2,3,4]
let set2:Set= [3,4,5,6]
let subtractSet = set1.subtract(set2)?
print(subtractSet)? //[2, 1]
使用“是否相等”運(yùn)算符(==)來判斷兩個集合是否包含全部相同的值。
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)?