龙空技术网

Swift笔记-集合类型

整天摸鱼的老秦 110

前言:

此时同学们对“两个集合相交叫什么关系”可能比较关切,姐妹们都需要了解一些“两个集合相交叫什么关系”的相关知识。那么小编同时在网摘上收集了一些对于“两个集合相交叫什么关系””的相关知识,希望姐妹们能喜欢,大家一起来了解一下吧!

数组(Array)是有序数据的集集合(Set)是无序无重复数据的集字典(Dictionary)是无序的键值对的集

注:Swift 中的数组、集合和字典必须明确其中保存的键和值类型

数组(Array)

有序列表存储同一类型的多个值,相同的值可以多次出现

语法:Array<Element> or [Element] (推荐使用)

创建一个空数组

var ary : [String] = []print("ary = \(ary)")// 打印结果: ary = []//  添加一个 “123”ary.append("123")print("ary = \(ary)")// 打印结果: ary = ["123"]

创建有默认数据的数组

var ary1 = Array(repeating: 1, count: 2)var ary2 = [1,1]// ary1 等价于 ary2var ary3 = ary1 +ary2// ary3 = [1,1,1,1]  ary3 被推断为 [Int]

数组的使用

// 获取数组长度ary3.count// 判断数组是否有数据(count 是否为 0)ary3.isEmpty // 在最后面添加数据 6ary3.append(6) ary3+=[6]// 根据下标获取数据 ary[下标] // 0 开始ary3[4]// 根据下标更改数据// 改前: [1, 1, 1, 1, 6, 6]ary3[1] = 10// ary3 = [1, 10, 1, 1, 6, 6]// 替换部分 2到4ary3[2...4] = [17,18,67,89,0]// ary3 = [1, 10, 17, 18, 67, 89, 0, 6]//在指定位置添加数据项// insert(newElement, at: Int)ary3.insert(22, at: 2)// ary3 = [1, 10, 22, 17, 18, 67, 89, 0, 6]// 删除指定位置数据ary3.remove(at: 4)// ary3 = [1, 10, 22, 17, 67, 89, 0, 6]// 删除全部ary3.removeAll()// 删除最后一个ary3.removeLast()// 删除第一个ary3.removeFirst()

注:最大索引值一直是 count - 1,下标 > count - 1 会照成数组下标越界

遍历数组

for item in ary3 {    print(item)}

集合(Set)

无序无重复数据的集

语法:Set<Element>

创建一个空集合

var st = Set<String>()print("st =  \(st) ")// 打印 st =  [] // 添加一个 ‘123’st.insert("123")// st =  ["123"] 

创建有默认数据的集合

var st1:Set<String> = ["123","456","qbc","yusx"]

集合的使用

// 获取集合长度st1.count// 判断集合是否有数据(count 是否为 0)st1.isEmpty // 添加数据 "iosa"st1.insert("iosa")// 删除指定数据数据st1.remove("123")// 删除全部st1.removeAll();//集合中是否包含 "iosa"st1.contains("iosa")// 集合转数组st1.sorted

遍历数组

for item in st1 {    print(item)}

多个集合操作

intersection(_:) 根据两个集合的交集创建一个新的集合。 symmetricDifference(_:) 根据两个集合不相交的值创建一个新的集合。union(_:) 根据两个集合的所有值创建一个新的集合。subtracting(_:) 根据不在另一个集合中的值创建一个新的集合。运算符(==)来判断两个集合包含的值是否全部相同。isSubset(of:) 方法来判断一个集合中的所有值是否也被包含在另外一个集合中。isSuperset(of:) 方法来判断一个集合是否包含另一个集合中所有的值。isStrictSubset(of:) 或者 isStrictSuperset(of:) 方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等。isDisjoint(with:) 方法来判断两个集合是否不含有相同的值(是否没有交集)。

字典(Dictionary)

无序的键值对的集

语法:Dictionary<Key, Value>

创建一个字典

var dic:[String:Int] = [:]print("dic = \(dic)")// 打印 dic = [:]// 添加dic["name"] = 123// dic = ["name": 123]

创建有默认数据的字典

//[key 1: value 1, key 2: value 2]var dic1: [String: String] = ["name": "小明", "sex": "男"]

字典的使用

// 获取集合长度dic1.count// 判断集合是否有数据(count 是否为 0)dic1.isEmpty // 添加数据 dic1["age"] = "22"// 改dic1["age"] = "32" dic1.updateValue("小明1", forKey: "name")// 删除指定数据数据dic1["age"] = nildic1.removeValue(forKey: "age")// 删除全部dic1.removeAll()

字典遍历

for (dic1K, dic1V) in dic1 {    print("\(dic1K): \(dic1V)")}// keyfor dic1K in dic1.keys {    print(dic1K)}// valuefor dic1V in dic1.values {    print(dic1V)}

标签: #两个集合相交叫什么关系