swift总结(Swift笔记-集合类型)
- 数组(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 等价于 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<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<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)
}
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com