1 概念
如果创建一个Arrays
、Sets
或Dictionaries
并且把它分配成一个变量,这个集合将会是可变的。这意味着我们可以在创建之后添加更多或移除已存在的数据项,或者改变集合中的数据项。如果我们把Arrays
、Sets
或Dictionaries
分配成常量,那么它就是不可变的,它的大小和内容都不能被改变。
用let创建的集合,大小、内容都是固定的;用var创建的集合,大小、内容都可变,这就是聚合。
2 集合的功能
可以简单的把集合看作为多个数据的容器,放在容器中的数据可以通过容器统一操作
3 数组(arrays)
数组是有序的,数组中数据可重复,数据中只能存储同种数据。
-
重点:有序、值可重复、同类型
3.2定义:
1)创建空数组:
var 数组名=[数组类型]()
类似于调用类的空构造函数创建对象
2) 创建包含初始值的数组
-
var a = [Int](count: 3, repeatedValue:0)
3)两数组相加
前提是,数组数据类型必须相同。
3.3 访问和修改数组
3.3.1 数组计数
数组名.count可以返回整个数组长度,即数组中包含数据的个数。经常用于for循环中。
3.3.2 数组增长
使用数组.append方法,可以将新项增加到数组末尾。
3.3.3 数组项方法
可以使用:数组名[索引]访问第“索引值+1”项数据
如:a[5]指的是a数组中第六项。 索引从0开始
3.3.4 数组是否为空
数组有一个属性isEmpty,布尔值,可以检查数组是否为空(数组中不包含数据项,count=0)。
true为空,false为非空。
3.3.5 数组增长
可以使用+=来增长数组
比如: var a=[1,2,3]
a+=[5,6]
[1,2,3,5,6]
3.3.6 ...用法
可以使用数组名[索引i...索引j]一次访问多个数组项
比如:a[1...3]=[0,0,0]
[1,0,0,0,6]
3.3.7 在指定位置插入新项
调用数组的insert(_:atIndex:)方法来在某个具体索引值之前添加数据项:
a.inert(9,atIndex:0)
[9,1,0,0,0,0]
3.3.8 删除指定位置项目:
可以使用removeAtIndex(_:)
方法来移除数组中的某一项。这个方法把数组在特定索引值中存储的数据项移除并且返回这个被移除的数据项(我们不需要的时候就可以无视它)
3.3.9 遍历
for item in 数组{
用item遍历数组
}
每次循环时,item都可以获取到当前索引值对应的数组项,可以通过操作item来获取数组中每一项。
1 引用类型和值类型区别
1)普通的数据类型,和结构体、枚举等,是值类型,赋值时,会键立一个备份,给新的变量。
2)类、对象是引用类型。赋值时。并不会新建对象的副本,而是把对象的地址给新对象。所以