参考连接: Swift 集合html
Swift 语言提供了数组和字典两种集合类型来存储集合数据。数组用来按顺序存储相同类型的数据。字典则是以无序的方式来存储键值对(key,value)。数组和字典都是强类型的,也就意味着,数组和字典在声明时必须指明类型。 swift
本篇博客咱们来分别讨论swift中的数组和字典 数组
数组 app
数组就是以一个从头至尾的顺序存储相同类型值的容器。相同的值能够在一个数组中出现屡次。下面来建立并初始化两个数组: ide
建立数组 spa
var intArray : [Int] = [1 , 2 , 3]orm
var strArray : [String] = ["hello" , "world"] htm
注意:我如今编写的swift代码的版本是swift2.1,数组的类型是[Type],而不是Type[] 因为swift能够进行类型推测,因此我在建立这两个数组时能够不标注类型,以下 three
var intArray = [1 , 2 , 3]rem
var strArray= ["hello" , "world"]
能够这样来建立一个空数组
var emptyArray = [Int]()
访问和修改数组
咱们能够经过访问数组下标来获取数组中某个元素的值,也能够经过数组的其它属性和方法来修改数组。
//获取数组中的元素个数
var itemCount = intArray.count
//判断数组是否为空
var isEmpty = intArray.isEmpty
//经过下标来访问数组的某个元素
var item = intArray[0]
//向数组的最后面加入元素
intArray.append(4)
//改变某个位置上元素的值
intArray[0] = 0
//移除某个位置的元素
var removedItem = intArray.removeAtIndex(1)
//判断数组是否包含某个值
intArray.contains(2)
//向数组的某个位置插入一个值
intArray.insert(2, atIndex: 1)
//再次判断
intArray.contains(2)
若是你认为swift关于数组的操做就这么多,那你就错了,下面来两个更强大的功能:数组的拼接和区域内赋值
var anotherIntArray = [4 , 5 , 6]
intArray += anotherIntArray
strArray += ["hello" ,"swift"]
数组的拼接是把第二个数组所有接到第一个数组的最后面
intArray[2...4] = [1,2]
intArray[2...4] = []
这个区域内赋值(这个名字是我瞎编的,哈哈),就是把数组的下标在2到4之间的元素替换为等号后面给定的数组,任意长度哦,(能够为空数组哦,瞬间变成批量移除哦)
数组的遍历
咱们可使用传统的for循环语法来遍历数组,也可使用for-in的语法来遍历数组
for var i = 0 ;i < intArray.count ; i++ {
print(intArray[i])
}
for item in intArray{
print(item)
}
常量数组
若是把一个数组声明为常量,则:
列表的长度不可被修改,append()等方法不能使用,不然编译器报错列表内任意元素的值不可被修改,不然编译器报错
//声明一个常量数组
let intArray = [1,2,3]
intArray.append(4) //报错,数组长度不可被修改
intArray[0] = 0 //报错,数组内的任意元素不可被修改
字典
字典是一组特定类型的键值对。下面来建立一个字典
var dic = [1:"one",2:"two",3:"three"]
if let value = dic[2]{
print(value)
}
dic[4]="foure"
print(dic[4])
输出结果为
two
Optional("foure")
我经过字面值来建立了一个Dictionary
字典的遍历
用for…in的方式来遍历字典
for (number,str) in dic{
print(number)
print(str)
}
字典中的每一个项都经过元组的形式返回。 也能够单独遍历全部的key或全部的value
for key in dic.keys{
print(key)
}
for v in dic.values{
print(v)
}
遍历字典时,全部的值都是非可选的。
常量字典
与常量的数组相同,常量的字典中的键的值是不可修改的,字典的长度也是不能修改的。