本文屬個人筆記曙博,不做詳解拥刻,僅供參考
參考文章:http://www.swift51.com/swift.html
數(shù)組使用有序列表存儲同一類型的多個值父泳。相同的值可以多次出現(xiàn)在一個數(shù)組的不同位置中吴汪。
注意: Swift 的Array類型被橋接到Foundation中的NSArray類蒸眠。 更多關(guān)于在Foundation和Cocoa中使用Array的信息,參見 Using Swift with Cocoa and Obejective-C 一書楞卡。
數(shù)組的簡單語法
寫 Swift 數(shù)組應(yīng)該遵循像 Array<Element>
這樣的形式,其中 Element
是這個數(shù)組中唯一允許存在的數(shù)據(jù)類型淘捡。我們也可以使用像 [Element]
這樣的簡單語法池摧。盡管兩種形式在功能上是一樣的,但是推薦較短的那種作彤,而且在本文中都會使用這種形式來使用數(shù)組。
數(shù)組的創(chuàng)建
我們可以使用構(gòu)造語法來創(chuàng)建一個由特定數(shù)據(jù)類型構(gòu)成的空數(shù)組:
var someInts = [Int]()
print("someInts is of type [Int] with \(someInts.count) items.")
// 打印 "someInts is of type [Int] with 0 items."
注意创葡,通過構(gòu)造函數(shù)的類型代咸,someInts的值類型被推斷為[Int]蹈丸。
或者呐芥,如果代碼上下文中已經(jīng)提供了類型信息,例如一個函數(shù)參數(shù)或者一個已經(jīng)定義好類型的常量或者變量荸百,我們可以使用空數(shù)組語句創(chuàng)建一個空數(shù)組滨攻,它的寫法很簡單:[](一對空方括號):
someInts.append(3)
// someInts 現(xiàn)在包含一個 Int 值
someInts = []
// someInts 現(xiàn)在是空數(shù)組,但是仍然是 [Int] 類型的光绕。
訪問和修改數(shù)組
我們可以通過數(shù)組的方法和屬性來訪問和修改數(shù)組,或者使用下標(biāo)語法欣尼。
可以使用數(shù)組的只讀屬性count來獲取數(shù)組中的數(shù)據(jù)項(xiàng)數(shù)量:
print("The shopping list contains \(shoppingList.count) items.")
// 輸出 "The shopping list contains 2 items."(這個數(shù)組有2個項(xiàng))
使用布爾值屬性isEmpty作為檢查count屬性的值是否為 0 的捷徑:
if shoppingList.isEmpty {
print("The shopping list is empty.")
} else {
print("The shopping list is not empty.")
}
// 打印 "The shopping list is not empty."(shoppinglist 不是空的)
也可以使用append(_:)方法在數(shù)組后面添加新的數(shù)據(jù)項(xiàng):
shoppingList.append("Flour")
// shoppingList 現(xiàn)在有3個數(shù)據(jù)項(xiàng)停蕉,有人在攤煎餅
除此之外钙态,使用加法賦值運(yùn)算符(+=)也可以直接在數(shù)組后面添加一個或多個擁有相同類型的數(shù)據(jù)項(xiàng):
shoppingList += ["Baking Powder"]
// shoppingList 現(xiàn)在有四項(xiàng)了
shoppingList += ["Chocolate Spread", "Cheese", "Butter"]
// shoppingList 現(xiàn)在有七項(xiàng)了
可以直接使用下標(biāo)語法來獲取數(shù)組中的數(shù)據(jù)項(xiàng)菇晃,把我們需要的數(shù)據(jù)項(xiàng)的索引值放在直接放在數(shù)組名稱的方括號中:
var firstItem = shoppingList[0]
// 第一項(xiàng)是 "Eggs"
數(shù)組的遍歷
我們可以使用for-in循環(huán)來遍歷所有數(shù)組中的數(shù)據(jù)項(xiàng):
for item in shoppingList {
print(item)
}
// Six eggs
// Milk
// Flour
// Baking Powder
// Bananas
如果我們同時需要每個數(shù)據(jù)項(xiàng)的值和索引值磺送,可以使用 enumerate()
方法來進(jìn)行數(shù)組遍歷。 enumerate()
返回一個由每一個數(shù)據(jù)項(xiàng)索引值和數(shù)據(jù)值組成的元組册着。我們可以把這個元組分解成臨時常量或者變量來進(jìn)行遍歷:
for (index, value) in shoppingList.enumerate() {
print("Item \(String(index + 1)): \(value)")
}
// Item 1: Six eggs
// Item 2: Milk
// Item 3: Flour
// Item 4: Baking Powder
// Item 5: Bananas
數(shù)組的應(yīng)用
數(shù)組去重
var array = [String]()
let result = Array(Set(array))
獲取指定元素在數(shù)組中的位置
let index = array.indexOf(“XX”)
刪除指定位置元素
array.removeAtIndex(index)
創(chuàng)建重復(fù)數(shù)組
array = Array.init(count:重復(fù)次數(shù), repeatedValue:值)
數(shù)組與字符串互轉(zhuǎn):
String->Array
let str = “sh,dfbg,e,f,v,vfgrt”
let strArray =str.componentsSeparatedByString(“,”)
Array->String
let strArray = [“a”,”b”,”c”]
let str = strArray.joinWithSeparator(“,”)