iOS -Swift 3.0 -Array(數組與可變數組相關屬性及用法)


  1 //
  2 
  3 //  ViewController.swift
  4 
  5 //  Swift-Array
  6 
  7 //
  8 
  9 //  Created by luorende on 16/9/12.
 10 
 11 //  Copyright © 2016年 luorende. All rights reserved.
 12 
 13 //
 14 
 15  
 16 
 17 import UIKit
 18 
 19  
 20 
 21 class ViewController: UIViewController {
 22 
 23  
 24 
 25     override func viewDidLoad() {
 26 
 27         super.viewDidLoad()
 28 
 29         // Do any additional setup after loading the view, typically from a nib.
 30 
 31         
 32 
 33       
 34 
 35         /**
 36 
 37         數組
 38 
 39         數組的介紹
 40 
 41         數組(Array)是一串有序的由相同類型元素構成的集合
 42 
 43         數組中的集合元素是有序的,可以重復出現
 44 
 45         Swift中的數組
 46 
 47         swift數組類型是Array,是一個泛型集合
 48 
 49         數組的初始化
 50 
 51         數組分成:可變數組和不可變數組
 52 
 53         使用let修飾的數組是不可變數組
 54 
 55         使用var修飾的數組是可變數組
 56 
 57         */
 58 
 59         
 60 
 61  
 62 
 63  
 64 
 65         // 定義一個可變數組,必須初始化才能使用
 66 
 67         var array1 : [String] = [String]()
 68 
 69         print(array1)
 70 
 71         // 定義一個不可變數組
 72 
 73         let array2 : [NSObject] = ["age", 18]
 74 
 75         print(array2)
 76 
 77 //        在聲明一個Array類型的時候可以使用下列的語句之一
 78 
 79 //        可變數組類型,其數組中值必須為字符串
 80 
 81  
 82 
 83         var stuArray1:Array<String>
 84 
 85         var stuArray2: [String]
 86 
 87 //        聲明的數組需要進行初始化才能使用,數組類型往往是在聲明的同時進行初始化的
 88 
 89         // 定義時直接初始化 
 90 
 91         var array = ["why","only","you"]
 92 
 93         // 先定義,后初始化
 94 
 95         var array : Array<String>
 96 
 97         array = ["why", "only", "you"]
 98 
 99  
100 
101  
102 
103  
104 
105  
106 
107 //        數組的長度
108 
109         let  Arr = ["hell0","swift"]
110 
111         let count  = Arr.count //count 屬性 返回 數組的長度
112 
113         print( "count=\(count)")
114 
115         /**
116 
117          運行結果:count=2
118 
119          */
120 
121  
122 
123  
124 
125  
126 
127         //數組中變量值的修改
128 
129         var  str = [81,82,85]
130 
131         str[2] = 83 //str[2] 指的是數組中索引為2的變量值即85  重新賦值為83
132 
133         print("str=\(str)")
134 
135         
136 
137  
138 
139  
140 
141  
142 
143         //數組的追加---appped()函數
144 
145         var  arr = [1,2] //定義整形數組變量arr
146 
147         arr.append(3)//append(3) 是在arr數組的尾端追加變量值3到數組中  即數組長度增加1
148 
149         print(" arr = \(arr)  長度=\(arr.count)")
150 
151         /**
152 
153          運行結果: arr = [1, 2, 3]  長度=3
154 
155          */
156 
157  
158 
159  
160 
161  
162 
163  
164 
165  
166 
167         //1 訪問元素
168 
169           
170 
171         var test1Array=["你好","Swift","我在學習Swift"]
172 
173         print("第一個元素:\(test1Array.first)")
174 
175         print("最后一個元素:\(test1Array.last)")
176 
177         
178 
179         //2 獲取數組元素的個數
180 
181         print("數組個數為:\(test1Array.count)")
182 
183           
184 
185  
186 
187 //        另外一種方式訪問素組就是通過循環方式,可以采用loop方式或者for-in循環。
188 
189         var sum = 0
190 
191         for number in literalArray
192 
193         {
194 
195             sum += number
196 
197         }
198 
199         
200 
201 //        這段代碼實現的是遍歷數組,並將素組的每個元素相加統計他們的和。
202 
203  
204 
205  
206 
207  
208 
209  
210 
211 //        3 可變數組的插入 Insert(變量值 , atIndex: 索引)
212 
213         //數組的追加  Insert(變量值 ,atIndex:索引)
214 
215         var  arr2 = [10,11] 
216 
217         arr2.insert(9,atIndex:0) // 在數組arr中0的位置插入變量值9 數組長度加1
218 
219         print("arr2=\(arr2) 長度=\(arr2.count)")
220 
221         /**
222 
223         運行結果:arr2=[9, 10, 11] 長度=3
224 
225         */
226 
227  
228 
229  
230 
231  
232 
233 //        可變數組的移除  removeAtIndex(索引),removeLast()
234 
235 //        數組的移除  removeAtIndex(索引)數組指定位置移除變量值
236 
237         var arr3 = [100,101,102]
238 
239         arr3.removeAtIndex(0)//移除數組arr3中索引為0 的變量值,數組長度減1
240 
241         print("arr3 =\(arr3)  長度=\(arr3.count)")
242 
243         
244 
245         /**
246 
247         運行結果:arr3 =[101, 102]  長度=2
248 
249         */
250 
251  
252 
253  
254 
255  
256 
257 //        數組的移除  removeLast() 數組尾端移除變量值
258 
259         var arr4 = [200,201,202]
260 
261         arr4.removeLast() //移除數組arr3中尾端的變量值,數組長度減1
262 
263         print(" arr4 =\(arr4)  長度=\(arr4.count)")
264 
265         /**
266 
267          運行結果:arr4 =[200, 201]  長度=2
268 
269          */
270 
271  
272 
273  
274 
275  
276 
277  
278 
279         //創建空數組
280 
281         /** 
282 
283          1: [Int] () 是整形空數組
284 
285          2: array 數組變量 被let 修辭 ,array數組只能訪問
286 
287         */
288 
289 //        let  array = [Int] ()
290 
291         
292 
293         
294 
295         /**
296 
297          1: [Int] () 是整形空數組
298 
299          2: arr1 數組變量 被var  修辭 ,array數組是可變數組,可以動態修改
300 
301          */
302 
303  
304 
305  
306 
307  
308 
309  
310 
311         //判斷數組是否為空
312 
313         let arr5 = [Int] ()
314 
315         if arr5.isEmpty { //isEmpth 是判斷數組是否是空數組
316 
317             print("arr5 數組為空")
318 
319         }
320 
321         else{        
322 
323             print("arr5 數組不為空")
324 
325         }
326 
327         /**
328 
329         運行結果
330 
331         arr5 數組為空
332 
333          */
334 
335  
336 
337  
338 
339  
340 
341         //3 判斷數組是否為空
342 
343         let test3Array:[String]=[]
344 
345         
346 
347         //方法1,根據數組元素的個數判斷
348 
349         if test3Array.count==0{
350 
351              print("此數組為空")
352 
353         }
354 
355         //方法2,i
356 
357 //        sEmpty
358 
359         if test3Array.isEmpty {
360 
361                 print("此數組為空")  
362 
363         }  
364 
365  
366 
367  
368 
369  
370 
371  
372 
373  
374 
375 //        數組的遍歷
376 
377         var array5 = ["why","only","you"]
378 
379         // 遍歷數組
380 
381         for i in 0..<array5.count {
382 
383             print(array5[i])
384 
385         }
386 
387         // for in方式
388 
389         for item in array5 {
390 
391             print(item)
392 
393         }
394 
395         // 設置遍歷的區間
396 
397         for item in array5[0..<2] {
398 
399             print(item)
400 
401         }
402 
403  
404 
405  
406 
407  
408 
409  
410 
411  
412 
413 //        修改數組
414 
415 //        var定義的數組才能修改,有幾種方式可以修改數組。
416 
417 //        增加數組元素
418 
419 //        在數組末尾增加元素或者插入元素到指定的index,下面介紹通過append和+=方法增加元素
420 
421         var emptyArray = [Int]()
422 
423         emptyArray.append(5)
424 
425         emptyArray += [5]
426 
427         
428 
429 //        上面2個表達式效果是相同的。值得注意的一點是,使用+=操作符時,右邊的必須為數組,即使只有一個元素時也要為數組,還有就是通過這種方式你可以一次性給數組增加多個值,如:
430 
431         emptyArray += [9, 8, 7, 6]
432 
433         
434 
435 //        現在,emptyArray含有了[5,5,9,8,7,6]這些元素值。
436 
437 //        可以通過insert方法插入元素到數組的任意位置。
438 
439         emptyArray.insert(12, atIndex: 2)
440 
441         //emptyArray now is [5, 5, 12, 9, 8, 7, 6]
442 
443 //        我們在第三個位置插入12。
444 
445 //        清空數組方法:
446 
447         emptyArray.removeAll()
448 
449         //emptyArray now is empty once more
450 
451 //        removeAll方法接受一個參數,允許清空數組時是否保持數組的容量,該參數默認值為false,即將數組的capacity容量設置為0。如果你想保持容量,可以參考下代碼:
452 
453         var originalCapacity = emptyArray.capacity   //
454 
455         originalCapacity = 12
456 
457         emptyArray.removeAll(keepCapacity: true)
458 
459         var newCapacity = emptyArray.capacity        //
460 
461         newCapacity = 12
462 
463 //        由上代碼可以看出emptyArray在需要重新分配內存之前可以存儲12個值,然而使用removeAll(),newCapcity則等於0。
464 
465  
466 
467  
468 
469  
470 
471  
472 
473  
474 
475 //        基於數組創建新數組
476 
477 //        可以采用+合並2個數組為一個數組,它返回的新數組順序按照操作符左邊的數組到右邊數組的元素一次排列。
478 
479         let arrayOne = [1,2,3,4,5]
480 
481         let arrayTwo = [30, 40, 50]
482 
483         let bothArrays = arrayOne + arrayTwo
484 
485         print(bothArrays)// 正常情況下是從小到大的順序依次排列
486 
487         //bothArrays now is 1, 2, 3, 4, 5, 30, 40, 50]
488 
489 //        調用reserse方法反轉數組元素也會返回一個新的數組。
490 
491         let normalArray = [20, 21, 22, 23, 24, 25]
492 
493         let reversedArray = normalArray.reverse() //從大到小的順序
494 
495         print(reversedArray)
496 
497         //reversedArray now is [25, 24, 23, 22, 21, 20]
498 
499         
500 
501  
502 
503  
504 
505         // 數組合並 
506 
507         // 注意:只有相同類型的數組才能合並 
508 
509         let array00 = ["why", "lmj","lnj"]
510 
511         let array10 = ["yz", "wsz"]
512 
513         let array20 = array00 + array10;
514 
515         print(array20)
516 
517         // 不建議一個數組中存放多種類型的數據
518 
519         let array30 = [2, 3, "why"]
520 
521         let array40 = ["yz", 23]
522 
523         let array50 = array30 + array40
524 
525         print(array50)
526 
527  
528 
529  
530 
531     }
532 
533  
534 
535     override func didReceiveMemoryWarning() {
536 
537         super.didReceiveMemoryWarning()
538 
539         // Dispose of any resources that can be recreated.
540 
541     }
542 
543  
544 
545  
546 
547 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM