swift集合类型——数组和字典

参考连接: 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)

遍历字典时,全部的值都是非可选的。 

常量字典 

与常量的数组相同,常量的字典中的键的值是不可修改的,字典的长度也是不能修改的。