1>集合
Swift 语言提供Arrays、Sets和Dictionaries三种基本的集合类型用来存储集合数据。数组(Arrays)是有序数据的集。集合(Sets)是无序无重复数据的集。字典(Dictionaries)是无序的键值对的集。
2>创建一个带有默认值的数组
eg:
3>通过两个数组相加创建一个数组
eg: let arr1 = [Int](count:3, repeatedValue:2)
let arr2 = [Int](count:2, repeatedValue:1)
let arr3 = arr1+ arr2
print(arr3)
那么打印的值为[2,2,2,1,1]
4>用字面量构造数组
我们可以使用字面量来进行数组构造,这是一种用一个或者多个数值构造数组的简单方法。字面量是一系列由逗号分割并由方括号包含的数值:
[value 1, value 2, value 3]。
var arr :[String] = ["heng","ha"]
由于swift的推断机制,我们也可以这样构造
eg: var arr = ["heng","ha"] swift可以自动推断[String]是这个数组的正确类型
5>访问和修改数组
我们可以通过数组的方法和属性来访问和修改数组,或者使用下标语法。可以使用数组的只读属性count来获取数组中的数据项数量.
使用布尔值属性isEmpty作为检查count属性的值是否为0
也可以使用append(_:)方法在数组后面添加新的数据项.
除此之外,使用加法赋值运算符(+=)也可以直接在数组后面添加一个或多个拥有相同类型的数据项:
可以直接使用下标语法来获取数组中的数据项,把我们需要的数据项的索引值直接放在数组名称的方括号中:
eg: let element = arr[0]
我们也可以用下标来改变某个已有索引值对应的数据值:
eg: arr[0] = "nihao"
调用数组的insert(_:atIndex:)方法来在某个具体索引值之前添加数据项:
eg:
打印的值为[4,2,2,2]
类似的我们可以使用removeAtIndex(_:)方法来移除数组中的某一项。这个方法把数组在特定索引值中存储的数据项移除并且返回这个被移除的数据项.
使用contains(_:)方法去检查数组中是否包含一个特定的值
6>集合
集合(Set)用来存储相同类型并且没有确定顺序的值。当集合元素顺序不重要时或者希望确保每个元素只出现一次时可以使用集合而不是数组。
Swift 的Set类型没有确定的顺序,为了按照特定顺序来遍历一个Set中的值可以使用sort()方法,它将根据提供的序列返回一个有序集合.
7>基本集合操作
使用intersect(_:)方法根据两个集合中都包含的值创建的一个新的集合。
使用exclusiveOr(_:)方法根据在一个集合中但不在两个集合中的值创建一个新的集合。
使用union(_:)方法根据两个集合的值创建一个新的集合。
使用subtract(_:)方法根据不在该集合中的值创建一个新的集合。
8>集合成员关系和相等
使用“是否相等”运算符(==)来判断两个集合是否包含全部相同的值。
使用isSubsetOf(_:)方法来判断一个集合中的值是否也被包含在另外一个集合中。
使用isSupersetOf(_:)方法来判断一个集合中包含另一个集合中所有的值。
使用isStrictSubsetOf(_:)或者isStrictSupersetOf(_:)方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等。
使用isDisjointWith(_:)方法来判断两个集合是否不含有相同的值(是否没有交集)。
9>字典
字典是一种存储多个相同类型的值的容器。每个值(value)都关联唯一的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典,这种方法很大程度上和我们在现实世界中使用字典查字义的方法一样。
10>创建一个空字典
var numberAndStr = [Int:String]() 这个例子创建了一个[Int: String]类型的空字典来储存整数的英语命名。它的键是Int型,值是String型。
11>访问和修改字典
访问和修改字典中最重要的一个方法是updateValue(_:forKey:)
作为另一种下标方法,字典的updateValue(_:forKey:)方法可以设置或者更新特定键对应的值。就像上面所示的下标示例,updateValue(_:forKey:)方法在这个键不存在对应值的时候会设置新值或者在存在时更新已存在的值。和上面的下标方法不同的,updateValue(_:forKey:)这个方法返回更新值之前的原值。这样使得我们可以检查更新是否成功。
12>字典遍历
如果我们只是需要使用某个字典的键集合或者值集合来作为某个接受Array实例的 API 的参数,可以直接使用keys或者values属性构造一个新数组.
如果我们只是需要使用某个字典的键集合或者值集合来作为某个接受Array实例的 API 的参数,可以直接使用keys或者values属性构造一个新数组:
Swift 的字典类型是无序集合类型。为了以特定的顺序遍历字典的键或值,可以对字典的keys或values属性使用sort()方法。
这样遍历出来的key就是有顺序的