參考連接: 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)
}
遍歷字典時,全部的值都是非可選的。
常量字典
與常量的數組相同,常量的字典中的鍵的值是不可修改的,字典的長度也是不能修改的。