你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 圖書連載15:數組

圖書連載15:數組

編輯:IOS開發綜合

3.4.1 數組

所謂數組,就是將相反數據類型的元素,按一定順序停止陳列的集合,就是把無限個類型相反的變量用一個名字命名,然後用編號區分它們的變量集合,這個名字被稱為數組名,編號稱為數組的下標。

組成數組的各個變量稱為數組的重量,也稱為數組的元素,有時也被稱為下標變量。Swift數組是在順序設計中,為了處置方便,把具有相反類型的若干變量,按有序的方式組織起來的一種方式,這些按序陳列的同類數據元素的集合稱為Swift數組。

Swift 數組對存儲數據有詳細要求。不同於Object-C的NSArray和NSMutableArray類,它們可以存儲任何類型的實例,而且不提供他們前往對象的任何實質信息。

數組的創立

在Swift中,數據值在被存儲進入某個數組之前,數據的類型必需明白,辦法是經過顯式的類型標注或類型推斷:

1     let stringArray =Array<String>()
2     let floatArray = [Float]()
3     let intArry = [1, 2, 3, 4, 5]

在第一行代碼中,經過運用命名型類型Array<SomeType>,創立了一個字符串類型的數組,其中SomeType是這個數組中獨一允許存在的數據類型。

在第二行代碼中,我們運用了像SomeType[]這樣的復雜語法,創立了一個類型為浮點數的數組floatArray。

後面兩種辦法都是經過顯示的類型標注,創立指定類型的數組。在第三行代碼中,經過給常量設置默許值,從而由Swift對其類型作出推斷。由於一切值都是整數類型,所以數組的類型被推斷為整型數組。

數組的訪問和查找

數組中元素的訪問,是經過下標語法完成的:

1     let stringArray =Array<String>()
2     let floatArray = [Float]()
3     let intArry = [1, 2, 3, 4, 5]

經過運用數組的只讀屬性count和isEmpty,可以獲取數組中的元素數量:

1     intArry.isEmpty                               //判別數組能否為空,後果為:false
2     intArry.count                                  //取得數組中元素的數量,後果為:5

經過運用數組的contains()辦法,可以判別數組中能否存在某個元素:

1     intArry.contains(3)                         //判別數組中能否存在3,後果為:true

數組的編輯

在Swift中,您可以運用數組的append()辦法,或許直接運用加號+,往已有的數組中添加新的元素:

1     var intArry = [1, 2, 3, 4, 5]
2     intArry += [6]                                  //intArray的元素:[1, 2, 3, 4, 5, 6]
3     intArry.append(7)                          //intArray的元素:[1, 2, 3, 4, 5, 6, 7]

假如需求在數組的兩頭的地位添加新的元素,可以運用insert()辦法,新的元素將被拔出到數組中指定的index地位,該地位原來的元素將順次右移:

1     intArry.insert(100, at: 2)                 // intArray的元素:[1, 2, 100, 3, 4, 5, 6, 7]

在Swift中修正數組中的某個元素,也是十分復雜的。首先運用下標定位到需求修正的元素,然後直接給元素指定新的值即可:

1     intArry[2] = 9                                   // intArray的元素:[1, 2, 9, 3, 4, 5, 6, 7]

運用這種方式,甚至可以一次性同時修正數組中的多個元素的值:

1     intArry[3...5] = [8, 8, 8]                   // intArray的元素:[1, 2, 9, 8, 8, 8, 6, 7]

Swift數組提供了幾種remove辦法,用來刪除數組中的元素:

1     intArry.removeFirst()                               // intArray的元素:[2, 9, 8, 8, 8, 6, 7]
2     intArry.removeLast()                               // intArray的元素:[2, 9, 8, 8, 8, 6]
3     intArry. remove(at: 2)                              //intArray的元素:[2, 9, 8, 8, 6]
4     intArry.removeSubrange(Range(1..<3))        // intArray的元素:[2, 8, 6]
5     intArry.removeAll()                                  // intArray的元素:[]
 

數組的排序

絕對於Object-C言語來說,在Swift中對數組停止排序變得極為復雜:

1     var intArry = [11, 22, 3, 14,25]
2     print(intArry.sort())                                  // 輸入的後果:[3, 11, 14, 22, 25]
 

sort()辦法默許是按升序停止陳列,假如想依照降序對數組停止陳列:

1     intArry.sort(isOrderedBefore:>)            // 輸入的後果:[25, 22, 14, 11, 3]

對擁有復雜類型元素的數組停止排序,也是十分復雜的,在上面的例子中,創立了一個包括三個元組對應的數組,並且依照元組中姓名的升序停止陳列:

1     var userList = [(name: "Thomas", age: 20),  (name: "John", age: 32),  (name: " Bill",age: 28)]
2   userList.sort(isOrderedBefore:{$0.name > $1.name})
userList排序後的後果為:[("Bill",28), ("John", 32), ("Thomas", 20)]。

3.4.2 多維數組

多維數組是指在數組中,依然存在其它的數組。

您可以將多維數組了解為,經過幾次索引可以找到存儲的值就為幾維數組,例如在一維數組userList中,經過一個索引值userList [0],就可以查到第一個用戶。在二維數組userList2,就需求兩次索引userList [0][0],才可以查到第一個用戶。

多維數組的創立,與一維數組相似,以下代碼定義了一個包括整數元素的二維數組:

1     var intArray = [[Int]]()
 

異樣可以經過指定初始值的辦法,創立一個多維數組:

1     let numbers = [[1, 2, 3], [4,5, 6, 7]]

和一維數組一樣,可以運用append()辦法,往多維數組中添加更多的數組元素:

1     var numbers = [[1, 2, 3], [4,5, 6, 7]]
2     numbers.append([8,9,10])                      //numbers的元素:[[1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]

那麼如何獲取多維數組中的元素呢?假設您需求取得numbers數組中的8這個數字,首先經過numbers[2]取得[8, 9, 10]數組,然後經過numbers[2][0]取得[8, 9, 10]數組中的第一個元素。

即經過numbers[2][0]取得第三個子數組中的第一個元素:8。

3.4.3 數組的遍歷

在上面的代碼中,運用..<符號,遍歷數組從0至4之間的一切元素:

1     var numbers = [1, 2, 3, 4, 5]
2     for index in 0 ..<numbers.count
3     {
4         print(numbers[index])
5     }
 

數組的遍歷其實可以愈加復雜:

1     var numbers = [1, 2, 3, 4, 5]
2     for num in numbers
3     {
4         print(num)
5     }

假如僅需遍歷指定范圍內的數組元素,可以經過定義Range的辦法來完成:

1     var numbers = [1, 2, 3, 4, 5]
2     let range = 2..<numbers.count
3     for (index, value) inzip(range, numbers[range])
4     {
5               print("\(index): \(value)")
6     }

關於包括復雜元素的數組停止遍歷,也是十分復雜的事情:

1     let scores =["Jerry":78, "Thomas":88, "John":92]
2     for (student, score) in scores
3     {
4         print(student + "' score is\(score)")
5     }

經過for-in語句,也能很方便地完成對多維數組的遍歷:

1     var numbers = [[1, 2, 3],[4, 5,6, 7]]
2     for subNumbers in numbers
3     {
4         for number in subNumbers
5         {
6             print(number)
7         }
8     }

一團體寫書,難免會有缺乏和纰漏,歡送大家經過這個郵箱:[email protected]

將你的意見和建議通知我們,感激!

關注我的微信大眾號“酷課堂”,獲取更多學習資源,歡送留言交流。

圖書連載15:數組


【圖書連載15:數組】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved