Swift-陣列(Arrays)
本文屬個人筆記,不做詳解,僅供參考
參考文章:http://www.swift51.com/swift.html
陣列使用有序列表儲存同一型別的多個值。相同的值可以多次出現在一個陣列的不同位置中。
注意: Swift 的Array型別被橋接到Foundation中的NSArray類。 更多關於在Foundation和Cocoa中使用Array的資訊,參見 Using Swift with Cocoa and Obejective-C 一書。
陣列的簡單語法
寫 Swift 陣列應該遵循像 Array<Element>
這樣的形式,其中 Element
是這個陣列中唯一允許存在的資料型別。我們也可以使用像 [Element]
這樣的簡單語法。儘管兩種形式在功能上是一樣的,但是推薦較短的那種,而且在本文中都會使用這種形式來使用陣列。
陣列的建立
我們可以使用構造語法來建立一個由特定資料型別構成的空陣列:
var someInts = [Int]()
print("someInts is of type [Int] with \(someInts.count) items.")
// 列印 "someInts is of type [Int] with 0 items."
注意,通過建構函式的型別,someInts的值型別被推斷為[Int]。
或者,如果程式碼上下文中已經提供了型別資訊,例如一個函式引數或者一個已經定義好型別的常量或者變數,我們可以使用空陣列語句建立一個空陣列,它的寫法很簡單:[](一對空方括號):
someInts.append(3)
// someInts 現在包含一個 Int 值
someInts = []
// someInts 現在是空陣列,但是仍然是 [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 現在有3個資料項,有人在攤煎餅
除此之外,使用加法賦值運算子(+=)也可以直接在陣列後面新增一個或多個擁有相同型別的資料項:
shoppingList += ["Baking Powder"]
// shoppingList 現在有四項了
shoppingList += ["Chocolate Spread", "Cheese", "Butter"]
// shoppingList 現在有七項了
可以直接使用下標語法來獲取陣列中的資料項,把我們需要的資料項的索引值放在直接放在陣列名稱的方括號中:
var firstItem = shoppingList[0]
// 第一項是 "Eggs"
陣列的遍歷
我們可以使用for-in迴圈來遍歷所有陣列中的資料項:
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)
建立重複陣列
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(“,”)
相關文章
- Java陣列宣告建立和使用以及多維陣列、Arrays類、稀疏陣列Java陣列
- Swift-列舉Swift
- 要想陣列用的 6,怎能不懂 java.util.Arrays陣列Java
- 陣列的三種宣告方式總結、多維陣列的遍歷、Arrays類的常用方法總結陣列
- 通過Arrays.asList方法將陣列轉成集合後,能否修改集合個數?陣列
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- Swift-方法Swift
- leetcode 4. Median of Two Sorted Arrays 尋找兩個正序陣列的中位數(困難)LeetCode陣列
- 陣列,陣列類,SyStem類陣列
- Java陣列03:陣列使用Java陣列
- 陣列--移除陣列中指定的元素,不改變原陣列和改變原陣列陣列
- 【從蛋殼到滿天飛】JS 資料結構解析和演算法實現-Arrays(陣列)JS資料結構演算法陣列
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- 指標陣列和陣列指標與二維陣列指標陣列
- 陣列指標,指標陣列陣列指標
- Javascript - 陣列和陣列的方法JavaScript陣列
- Swift-屬性Swift
- Swift-下標Swift
- Swift-繼承Swift繼承
- 記一次陣列操作:陣列 A 根據陣列 B 排序陣列排序
- [求解]陣列,分成倆個陣列,陣列值之和的相差最小。陣列
- Arrays
- 陣列陣列
- C語言陣列與指標(Arrays and Pointers)關係解析-差不多是一回事兒C語言陣列指標
- iOS 字典轉陣列,陣列轉字典iOS陣列
- PHP陣列轉換為js陣列PHP陣列JS
- 【陣列】977. 有序陣列的平方陣列
- 指標陣列與陣列指標指標陣列
- 2-7 陣列:動態陣列陣列
- 陣列演算法-差分陣列陣列演算法
- scala陣列與java陣列對比陣列Java
- 矩陣和陣列矩陣陣列
- 稀疏陣列、佇列陣列佇列
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- JS陣列去重 – JSON陣列去重陣列JSON
- PHP 陣列搜尋 sdk & 陣列分頁PHP陣列
- 陣列(ArrayPool陣列池、Span<T>結構)陣列
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列