swift set

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)?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容