联系人:石虎 QQ:1224614774 昵称: 嗡嘛呢叭咪哄
QQ群:807236138 群称: iOS 技术交流学习群
QQ群:713799633 群称:iOS技术交流学习群-2
参考:
《swift 从入门到精通 》~ 基础篇(数据类型 ) https://blog.csdn.net/shihuboke/article/details/109553998
《swift 从入门到精通 》~ 基础篇(运算符、字符串 )https://blog.csdn.net/shihuboke/article/details/110203341
《swift 从入门到精通 》~ 基础篇(控制流、函数)https://blog.csdn.net/shihuboke/article/details/112144958
一、集合概念
集合就是用来存储一组数据的容器,常用的集合类型: 数组、集合和字典
数组是种按顺序存储相同类型数据的集合,相同的值可以在数组中的不同位置重复出现
集合和字典也是存储相同类型数据的集合,但是数据之间是无序,集合不允许重复出现
字典可以重复出现,但是每一个值都有唯一的健值与其对应
1.数组
数组的声明格式: Array<DataType> 或者[DataType]
数组的初始化有三种
第一种:
初始化方法是先将数组声明为一个空数组
var animalArray = [String]() // 初始化一个animalArray的空数组
animalArray.addend(“qqq”)
第二种:
初始化的方法是声明数组的时候直接复制为一个实际的数组。
var oneBitNumberArray: Array<Int> = [0,1,2,3,4,5,6]
var botanyArray1: [String] = [“1213”,”2345”,””456]
var botanyArray2: [“1213”,”2345”,””456]
第三种:
初始化的方法是快捷初始化方法,即一次性将数组的所有的元素初始化为同一个值
var twoBitNumberArray: [Int](repeating: 0, cout: 3) // 打印结果 0,0,0,
var threeBitNumberArray: [Int](repeating: 11, cout: 4) // 打印结果 11,11,11,11,
数组的相加和累加运算
数组的相加和累加运算分别使用运算符“+”和“+=”,从而由已知数组得到新数组
var theAddedBNumberArray = twoBitNumberArray + threeBitNumberArray // 打印结果【0,0,0, 11,11,11,11,】
animalArray += [“www”] // 打印结果 [“qqq”,“www”]
animalArray += [“rrrr”,”eeee”] // 打印结果 [“qqq”,“www”,“rrrr”,”eeee”]
数组的下标操作
数组中的元素是有序的,通过下标可以找到特定位置的元素
var theFirstAnimal = animalArray[0 ] // 打印结果 “qqq”
animalArray[2…3] // 打印结果 “rrrr”,”eeee”
注意: [2…3]的角标是是从 0 开始的,2..3 是第二个元素到第三个元素(包括 2 和 3)
插入与删除元素
insert()
insert(at: Int)
remove()
removeFirst()
removeLast()
theFirstAnimal.insert(“ttt”, at: 3) // 打印结果 [“qqq”,“www”,“rrrr”,”eeee”,“ttt”] 是从 0 小标开始的
数组的遍历
对 for- in 循环对数组animalArray中的元素进行遍历打印
For animal in animalArray {
//打印的是 四个 item
}
对以元组的方式对数组中的下标和相应元素遍历并打印
for (index,animal ) in {
animalArray() {
print()
}
}
数组的片段
通过数组的下标操作可以获取数组汇总的某一个元素,如果需要获取数组的一部分或者多个元素,就要用到获取子数组的方法
获取数组 Array 的片段 arraySlice的格式为:
arraySlice = array[startIndex…endIndex]
补充: 数组片段是原数组的一部分,共用相同的存储空间。如果数组片段中元素的值发生变化,那原数组中相应的元素的值也会同步改变
let newZoo = Array(animalArray[1…2])
newZoo[0]
newZoo[1]
元素交换位置
使用方法 swapAt(_:_:)
animalArray.swapAt(2, 3)
数组排序
使用方法 sort()
检索特定元素
使用方法 contains(_:) 该方法根据检索结果返回布尔值
2.集合
集合是由一组相同数据类型的元素组成的,每一个元素的值都是唯一的,集合中的元素是无序的。
集合类型的声明格式为 Set<DataType>
集合的初始化
创建一个空的集合开始,也可以通过直接赋值的方法
第一种:需要显示指出元素类型,
var weatherOfSanya = Set<String>()
weatherOfSanya = [“晴天”,“阴天”,“大雨”]
第二种: 通过被赋值的初始值推断集合中的元素类型
weatherOfSanya :Set = [“晴天”,“阴天”,“大雨”]
集合的为空判断和插入元素
——同数组方法
删除元素
——同数组方法
检索特定元素
——同数组方法
遍历集合
——同数组方法
集合排序
使用方法 sorted()函数
集合间的运算
intersect() 方法计算二个集合的交集,结果为一个新的集合
union() 方法计算二个集合的并集,结果为一个新的集合
subtract() 方法计算一个集合变量中不属于另一个集合的部分,结果为该部分元素形成的新集合
2.字典
声明字典类型的格式为:Dictionary<KeyType,ValueType>
声明简化格式: [KeyType :ValueType]
字典的初始化
创建一个空字典
var ascIIDictChar = Dictionary<Int , Character>()
var ascIIDictChar = [Int : Int]()
二种更新字典元素的方法
第一种是利用下标语法
第二种是利用字典类型自带的方法和属性
var ascIIDictChar = [97:”a”,98 : “b”,99 : “c”,100 : “d”,101 : “e”,102 : “f”]
利用下标创建一个县的键值对,键为 103,值为“g”
ascIIDictChar[103] = “g”
修改已经存在的键值对[97:”a”]为[97:”A”]
ascIIDictChar[97] = “A”
二种删除字典元素的方法
第一种: ascIIDictChar[97] = nil // 打印结果 [98 : “b”,99 : “c”,100 : “d”,101 : “e”,102 : “f”]
第二种: if let removeValue = ascIIDictChar.removeValue(forKey:98) {
// 打印结果 [99 : “c”,100 : “d”,101 : “e”,102 : “f”]
}
遍历字典
可以用 for-in 中循环中逐一访问键值对,并用元组保存,是用元组变量(ascIICode , char)储存每一次循环并打印出键值对
//字典的 keys 属性和 values 属性
字典类型提供了 keys 和 values 属性分别表示所有键和所有值得集合
例子:
for ascIICode in ascIIDictChar.keys {}
for char in ascIIDictChar.values {}
为了便于使用,一般将其转换为一个数组变量
let ascIICodeArray = Array(ascIIDictChar.keys)
let charArray = Array(ascIIDictChar.values )
二、控制流
请查看下一篇文字...
《swift 从入门到精通 》~ 基础篇(控制流、函数)https://blog.csdn.net/shihuboke/article/details/112144958
谢谢!!!
本账号主要分享我成长过程中的各种心得感悟,包括技术总结, iOS、Swift 和 Mac 相关技术文章、工具资源、参与技术讨论,整理开发技巧、让学习成为一种享受!