注: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 等价于 ary2 var ary3 = ary1 ary2 // ary3 = [1,1,1,1] ary3 被推断为 [Int]

数组的使用

// 获取数组长度 ary3.count // 判断数组是否有数据(count 是否为 0) ary3.isEmpty // 在最后面添加数据 6 ary3.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到4 ary3[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) }

多个集合操作

swift总结(Swift笔记-集合类型)(1)

swift总结(Swift笔记-集合类型)(2)

字典(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"] = nil dic1.removeValue(forKey: "age") // 删除全部 dic1.removeAll()

字典遍历

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

,