在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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 }
|
请发表评论