《swift 从入门到精通 》~ 基础篇(集合、数组、字典)

联系人:石虎 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 相关技术文章、工具资源、参与技术讨论,整理开发技巧、让学习成为一种享受!

猜你喜欢

转载自blog.csdn.net/shihuboke/article/details/110672581
今日推荐