本文屬個人筆記,不做詳解,僅供參考
參考文章:http://www.swift51.com/swift.html
數組使用有序列表存儲同一類型的多個值。相同的值可以多次出現(xiàn)在一個數組的不同位置中。
注意: Swift 的Array類型被橋接到Foundation中的NSArray類。 更多關于在Foundation和Cocoa中使用Array的信息,參見 Using Swift with Cocoa and Obejective-C 一書。
數組的簡單語法
寫 Swift 數組應該遵循像 Array<Element>這樣的形式,其中 Element是這個數組中唯一允許存在的數據類型。我們也可以使用像 [Element]這樣的簡單語法。盡管兩種形式在功能上是一樣的,但是推薦較短的那種,而且在本文中都會使用這種形式來使用數組。
數組的創(chuàng)建
我們可以使用構造語法來創(chuàng)建一個由特定數據類型構成的空數組:
var someInts = [Int]()
print("someInts is of type [Int] with \(someInts.count) items.")
// 打印 "someInts is of type [Int] with 0 items."
注意,通過構造函數的類型,someInts的值類型被推斷為[Int]。
或者,如果代碼上下文中已經提供了類型信息,例如一個函數參數或者一個已經定義好類型的常量或者變量,我們可以使用空數組語句創(chuàng)建一個空數組,它的寫法很簡單:[](一對空方括號):
someInts.append(3)
// someInts 現(xiàn)在包含一個 Int 值
someInts = []
// someInts 現(xiàn)在是空數組,但是仍然是 [Int] 類型的。
訪問和修改數組
我們可以通過數組的方法和屬性來訪問和修改數組,或者使用下標語法。
可以使用數組的只讀屬性count來獲取數組中的數據項數量:
print("The shopping list contains \(shoppingList.count) items.")
// 輸出 "The shopping list contains 2 items."(這個數組有2個項)
使用布爾值屬性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(_:)方法在數組后面添加新的數據項:
shoppingList.append("Flour")
// shoppingList 現(xiàn)在有3個數據項,有人在攤煎餅
除此之外,使用加法賦值運算符(+=)也可以直接在數組后面添加一個或多個擁有相同類型的數據項:
shoppingList += ["Baking Powder"]
// shoppingList 現(xiàn)在有四項了
shoppingList += ["Chocolate Spread", "Cheese", "Butter"]
// shoppingList 現(xiàn)在有七項了
可以直接使用下標語法來獲取數組中的數據項,把我們需要的數據項的索引值放在直接放在數組名稱的方括號中:
var firstItem = shoppingList[0]
// 第一項是 "Eggs"
數組的遍歷
我們可以使用for-in循環(huán)來遍歷所有數組中的數據項:
for item in shoppingList {
print(item)
}
// Six eggs
// Milk
// Flour
// Baking Powder
// Bananas
如果我們同時需要每個數據項的值和索引值,可以使用 enumerate()方法來進行數組遍歷。 enumerate()返回一個由每一個數據項索引值和數據值組成的元組。我們可以把這個元組分解成臨時常量或者變量來進行遍歷:
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
數組的應用
數組去重
var array = [String]()
let result = Array(Set(array))
獲取指定元素在數組中的位置
let index = array.indexOf(“XX”)
刪除指定位置元素
array.removeAtIndex(index)
創(chuàng)建重復數組
array = Array.init(count:重復次數, repeatedValue:值)
數組與字符串互轉:
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(“,”)