zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    虚拟机中按键切回windows系统界面快捷键
    余数
    质数(素数)判断代码实现
    =excel========》函数使用
    python 正则表达式规则
    linux常用命令详解
    c指针
    visual studio 2015 开发时常见问题的解决方案
    python装饰器
    构造方法
  • 原文地址:https://www.cnblogs.com/luorende/p/5874000.html
Copyright © 2011-2022 走看看