Swift-集合

  1. 集合的初始化
var skillsOfA: Set<String> = ["swift", "oc", "oc"] //集合中的每一個值都是唯一的
var skillsOfB: Set = ["HTML", "CSS", "Ruby"]

var emptySet1: Set<Double> = []
var emptySet2 = Set<Int>()

var vowels = Set(["A", "E", "I", "O", "U"])
  1. 集合的成員變量
let set: Set = [3, 2, 2, 1]
set.count
emptySet1.isEmpty

skillsOfA.first // 取出一個元素

skillsOfA.contains("swift")
  1. 遍歷
//遍歷
for skill in skillsOfA {
    print(skill)
}
//字典比較
let a: Set = [1, 2, 3, 4]
let b: Set = [1, 3, 2, 1, 1, 4, 2, 3, 2]
a == b // true
  1. 集合的增刪改查
var skillsOfA: Set = ["swift", "oc"]
//增
skillsOfA.insert("python")
skillsOfA.insert("swift") // 無效
//刪
skillsOfA.remove("oc") //返回被刪除元素
if let skill = skillsOfA.remove("oc") { //解包
    print("oc is removed")
}
  1. 集合中的數學方法
var skillsOfA: Set = ["swift", "oc"]
var skillsOfB: Set = ["HTML", "CSS", "Ruby"]
var skillsOfC: Set = ["swift", "HTML", "CSS"]

//并集
skillsOfA.union(skillsOfB) //不改變原集合
skillsOfA.formUnion //改變原集合
//交集
skillsOfA.intersection(skillsOfC) //不改變原集合
skillsOfA.formIntersection(skillsOfC) //改變原集合
//減集
skillsOfA.subtract(skillsOfC) //在A中減去跟C集合相同的元素
skillsOfC.subtract(skillsOfA) //在C中減去跟A集合相同的元素
//子集、真子集
var skillsOfD: Set = ["swift", "oc"]
skillsOfD.isSubset(of: skillsOfA) //判斷D是不是A的子集 true
skillsOfD.isStrictSubset(of: skillsOfA) //判斷D是不是A的真子集 false
//超集、真超集
skillsOfA.isSuperset(of: skillsOfD) //判斷D是不是A的超集 true
skillsOfA.isStrictSuperset(of: skillsOfD) //判斷D是不是A的真超集 false
//判斷兩個集合是否是相離的
skillsOfA.isDisjoint(of: skillsOfB) //true
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。