Error[8]: Undefined offset: 30, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述3.4.1 数组 所谓数组,就是将相同数据类型的元素,按一定顺序进行排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分它们的变量集合,这个名字被称为数组名,编号称为数组的下标。 组成数组的各个变量称为数组的分量,也称为数组的元素,有时也被称为下标变量。Swift数组是在程序设计中,为了处理方便,把具有相同类型的若干变量,按有序的形式组织起来的一种形式,这些按序排列的同类数据元素的

3.4.1 数组

所谓数组,就是将相同数据类型的元素,按一定顺序进行排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分它们的变量集合,这个名字被称为数组名,编号称为数组的下标。

组成数组的各个变量称为数组的分量,也称为数组的元素,有时也被称为下标变量。Swift数组是在程序设计中,为了处理方便,把具有相同类型的若干变量,按有序的形式组织起来的一种形式,这些按序排列的同类数据元素的集合称为Swift数组。

Swift 数组对存储数据有具体要求。不同于Object-C的NSArray和NSMutableArray类,它们可以存储任何类型的实例,而且不提供他们返回对象的任何本质信息。

数组的创建

在Swift中,数据值在被存储进入某个数组之前,数据的类型必须明确,方法是通过显式的类型标注或类型推断:

1     let stringArray =Array<String>()2     let floatArray = [float]()3     let intArry = [1,2,3,4,5]

在第一行代码中,通过使用命名型类型Array<SomeType>,创建了一个字符串类型的数组,其中SomeType是这个数组中唯一允许存在的数据类型。

在第二行代码中,我们使用了像SomeType[]这样的简单语法,创建了一个类型为浮点数的数组floatArray。

前面两种方法都是通过显示的类型标注,创建指定类型的数组。在第三行代码中,通过给常量设置默认值,从而由Swift对其类型作出推断。因为所有值都是整数类型,所以数组的类型被推断为整型数组。


数组的访问和查找

数组中元素的访问,是通过下标语法实现的:

1     let stringArray =Array<String>()2     let floatArray = [float]()3     let intArry = [1,5]

通过使用数组的只读属性count和isEmpty,可以获取数组中的元素数量:

1     intArry.isEmpty                               //判断数组是否为空,结果为:false2     intArry.count                                  //获得数组中元素的数量,结果为:5


通过使用数组的contains()方法,可以判断数组中是否存在某个元素:

1     intArry.contains(3)                         //判断数组中是否存在3,结果为:true

数组的编辑

在Swift中,您可以使用数组的append()方法,或者直接使用加号+,往已有的数组中添加新的元素:

1     var intArry = [1,5]2     intArry += [6]                                  //intArray的元素:[1,5,6]3     intArry.append(7)                          //intArray的元素:[1,6,7]

如果需要在数组的中间的位置添加新的元素,可以使用insert()方法,新的元素将被插入到数组中指定的index位置,该位置原来的元素将依次右移:

1     intArry.insert(100,at: 2)                 // intArray的元素:[1,100,7]

在Swift中修改数组中的某个元素,也是非常简单的。首先使用下标定位到需要修改的元素,然后直接给元素指定新的值即可:

1     intArry[2] = 9                                   // intArray的元素:[1,9,7]

使用这种方式,甚至可以一次性同时修改数组中的多个元素的值:

1     intArry[3...5] = [8,8,8]                   // intArray的元素:[1,7]

Swift数组提供了几种remove方法,用来删除数组中的元素:

1     intArry.removeFirst()                               // intArray的元素:[2,7]2     intArry.removeLast()                               // intArray的元素:[2,6]3     intArry. remove(at: 2)                              //intArray的元素:[2,6]4     intArry.removeSubrange(Range(1..<3))        // intArray的元素:[2,6]5     intArry.removeAll()                                  // intArray的元素:[] 

数组的排序

相对于Object-C语言来说,在Swift中对数组进行排序变得极为简单:

1     var intArry = [11,22,14,25]2     print(intArry.sort())                                  // 输出的结果:[3,11,25] 

sort()方法默认是按升序进行排列,如果想按照降序对数组进行排列:

1     intArry.sort(isOrderedBefore:>)            // 输出的结果:[25,3]

对拥有复杂类型元素的数组进行排序,也是非常简单的,在下面的例子中,创建了一个包含三个元组对应的数组,并且按照元组中姓名的升序进行排列:

1     var userList = [(name: "Thomas",age: 20),(name: "John",age: 32),(name: " Bill",age: 28)]2   userList.sort(isOrderedBefore:{3.4.2 多维数组.name > .name})userList排序后的结果为:[("Bill",28),("John",32),("Thomas",20)]。




1     var intArray = [[Int]]() 

多维数组是指在数组中,仍然存在其它的数组。

您可以将多维数组理解为,通过几次索引可以找到存储的值就为几维数组,例如在一维数组userList中,通过一个索引值userList [0],就可以查到第一个用户。在二维数组userList2,就需要两次索引userList [0][0],才可以查到第一个用户。

多维数组的创建,与一维数组类似,以下代码定义了一个包含整数元素的二维数组:

1     let numbers = [[1,3],[4,7]]

同样可以通过指定初始值的方法,创建一个多维数组:

1     var numbers = [[1,7]]2     numbers.append([8,10])                      //numbers的元素:[[1,7],[8,10]]

和一维数组一样,可以使用append()方法,往多维数组中添加更多的数组元素:

3.4.3 数组的遍历

那么如何获取多维数组中的元素呢?假如您需要获得numbers数组中的8这个数字,首先通过numbers[2]获得[8,10]数组,然后通过numbers[2][0]获得[8,10]数组中的第一个元素。

即通过numbers[2][0]获得第三个子数组中的第一个元素:8。




1     var numbers = [1,5]2     for index in 0 ..<numbers.count3     {4         print(numbers[index])5     } 

在下面的代码中,使用..<符号,遍历数组从0至4之间的所有元素:

1     var numbers = [1,5]2     for num in numbers3     {4         print(num)5     }

数组的遍历其实可以更加简单:

1     var numbers = [1,5]2     let range = 2..<numbers.count3     for (index,value) inzip(range,numbers[range])4     {5               print("\(index): \(value)")6     }

如果仅需遍历指定范围内的数组元素,可以通过定义Range的方法来实现:

1     let scores =["Jerry":78,"Thomas":88,"John":92]2     for (student,score) in scores3     {4         print(student + "' score is\(score)")5     }

对于包含复杂元素的数组进行遍历,也是非常简单的事情:

1     var numbers = [[1,7]]2     for subNumbers in numbers3     {4         for number in subNumbers5         {6             print(number)7         }8     }

通过for-in语句,也能很方便地实现对多维数组的遍历:

一个人写书,难免会有不足和纰漏,欢迎大家通过这个邮箱:coolketang@163.com


微信

将你的意见和建议告诉我们,感谢!

关注我的欢迎留言交流。公众号“酷课堂”,获取更多学习资源,[+++]

总结

以上是内存溢出为你收集整理的图书连载15:数组全部内容,希望文章能够帮你解决图书连载15:数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
图书连载15:数组_app_内存溢出

图书连载15:数组

图书连载15:数组,第1张

概述3.4.1 数组 所谓数组,就是将相同数据类型的元素,按一定顺序进行排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分它们的变量集合,这个名字被称为数组名,编号称为数组的下标。 组成数组的各个变量称为数组的分量,也称为数组的元素,有时也被称为下标变量。Swift数组是在程序设计中,为了处理方便,把具有相同类型的若干变量,按有序的形式组织起来的一种形式,这些按序排列的同类数据元素的

3.4.1 数组

所谓数组,就是将相同数据类型的元素,按一定顺序进行排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分它们的变量集合,这个名字被称为数组名,编号称为数组的下标。

组成数组的各个变量称为数组的分量,也称为数组的元素,有时也被称为下标变量。Swift数组是在程序设计中,为了处理方便,把具有相同类型的若干变量,按有序的形式组织起来的一种形式,这些按序排列的同类数据元素的集合称为Swift数组。

Swift 数组对存储数据有具体要求。不同于Object-C的NSArray和NSMutableArray类,它们可以存储任何类型的实例,而且不提供他们返回对象的任何本质信息。

数组的创建

在Swift中,数据值在被存储进入某个数组之前,数据的类型必须明确,方法是通过显式的类型标注或类型推断:

1     let stringArray =Array<String>()2     let floatArray = [float]()3     let intArry = [1,2,3,4,5]

在第一行代码中,通过使用命名型类型Array<SomeType>,创建了一个字符串类型的数组,其中SomeType是这个数组中唯一允许存在的数据类型。

在第二行代码中,我们使用了像SomeType[]这样的简单语法,创建了一个类型为浮点数的数组floatArray。

前面两种方法都是通过显示的类型标注,创建指定类型的数组。在第三行代码中,通过给常量设置默认值,从而由Swift对其类型作出推断。因为所有值都是整数类型,所以数组的类型被推断为整型数组。


数组的访问和查找

数组中元素的访问,是通过下标语法实现的:

1     let stringArray =Array<String>()2     let floatArray = [float]()3     let intArry = [1,5]

通过使用数组的只读属性count和isEmpty,可以获取数组中的元素数量:

1     intArry.isEmpty                               //判断数组是否为空,结果为:false2     intArry.count                                  //获得数组中元素的数量,结果为:5


通过使用数组的contains()方法,可以判断数组中是否存在某个元素:

1     intArry.contains(3)                         //判断数组中是否存在3,结果为:true

数组的编辑

在Swift中,您可以使用数组的append()方法,或者直接使用加号+,往已有的数组中添加新的元素:

1     var intArry = [1,5]2     intArry += [6]                                  //intArray的元素:[1,5,6]3     intArry.append(7)                          //intArray的元素:[1,6,7]

如果需要在数组的中间的位置添加新的元素,可以使用insert()方法,新的元素将被插入到数组中指定的index位置,该位置原来的元素将依次右移:

1     intArry.insert(100,at: 2)                 // intArray的元素:[1,100,7]

在Swift中修改数组中的某个元素,也是非常简单的。首先使用下标定位到需要修改的元素,然后直接给元素指定新的值即可:

1     intArry[2] = 9                                   // intArray的元素:[1,9,7]

使用这种方式,甚至可以一次性同时修改数组中的多个元素的值:

1     intArry[3...5] = [8,8,8]                   // intArray的元素:[1,7]

Swift数组提供了几种remove方法,用来删除数组中的元素:

1     intArry.removeFirst()                               // intArray的元素:[2,7]2     intArry.removeLast()                               // intArray的元素:[2,6]3     intArry. remove(at: 2)                              //intArray的元素:[2,6]4     intArry.removeSubrange(Range(1..<3))        // intArray的元素:[2,6]5     intArry.removeAll()                                  // intArray的元素:[] 

数组的排序

相对于Object-C语言来说,在Swift中对数组进行排序变得极为简单:

1     var intArry = [11,22,14,25]2     print(intArry.sort())                                  // 输出的结果:[3,11,25] 

sort()方法默认是按升序进行排列,如果想按照降序对数组进行排列:

1     intArry.sort(isOrderedBefore:>)            // 输出的结果:[25,3]

对拥有复杂类型元素的数组进行排序,也是非常简单的,在下面的例子中,创建了一个包含三个元组对应的数组,并且按照元组中姓名的升序进行排列:

1     var userList = [(name: "Thomas",age: 20),(name: "John",age: 32),(name: " Bill",age: 28)]2   userList.sort(isOrderedBefore:{3.4.2 多维数组.name > .name})userList排序后的结果为:[("Bill",28),("John",32),("Thomas",20)]。




1     var intArray = [[Int]]() 

多维数组是指在数组中,仍然存在其它的数组。

您可以将多维数组理解为,通过几次索引可以找到存储的值就为几维数组,例如在一维数组userList中,通过一个索引值userList [0],就可以查到第一个用户。在二维数组userList2,就需要两次索引userList [0][0],才可以查到第一个用户。

多维数组的创建,与一维数组类似,以下代码定义了一个包含整数元素的二维数组:

1     let numbers = [[1,3],[4,7]]

同样可以通过指定初始值的方法,创建一个多维数组:

1     var numbers = [[1,7]]2     numbers.append([8,10])                      //numbers的元素:[[1,7],[8,10]]

和一维数组一样,可以使用append()方法,往多维数组中添加更多的数组元素:

3.4.3 数组的遍历

那么如何获取多维数组中的元素呢?假如您需要获得numbers数组中的8这个数字,首先通过numbers[2]获得[8,10]数组,然后通过numbers[2][0]获得[8,10]数组中的第一个元素。

即通过numbers[2][0]获得第三个子数组中的第一个元素:8。




1     var numbers = [1,5]2     for index in 0 ..<numbers.count3     {4         print(numbers[index])5     } 

在下面的代码中,使用..<符号,遍历数组从0至4之间的所有元素:

1     var numbers = [1,5]2     for num in numbers3     {4         print(num)5     }

数组的遍历其实可以更加简单:

1     var numbers = [1,5]2     let range = 2..<numbers.count3     for (index,value) inzip(range,numbers[range])4     {5               print("\(index): \(value)")6     }

如果仅需遍历指定范围内的数组元素,可以通过定义Range的方法来实现:

1     let scores =["Jerry":78,"Thomas":88,"John":92]2     for (student,score) in scores3     {4         print(student + "' score is\(score)")5     }

对于包含复杂元素的数组进行遍历,也是非常简单的事情:

1     var numbers = [[1,7]]2     for subNumbers in numbers3     {4         for number in subNumbers5         {6             print(number)7         }8     }

通过for-in语句,也能很方便地实现对多维数组的遍历:

一个人写书,难免会有不足和纰漏,欢迎大家通过这个邮箱:coolketang@163.com


微信

将你的意见和建议告诉我们,感谢!

关注我的欢迎留言交流。公众号“酷课堂”,获取更多学习资源,

总结

以上是内存溢出为你收集整理的图书连载15:数组全部内容,希望文章能够帮你解决图书连载15:数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1067227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存