Swift4.0 数组的常用详解

//创建数据的几种方式

var someArray1 = [String](repeatElement("123", count: 3)) //类型是字符串,默认是123 长度是3

var someArray2 = ["123","123","123"]

var someArray3 : [String]=["123","123","123"]

//var numbers: Array<Int> = [0,1,2,3,4,5]

someArray1.count

 

//使用数据中的某个值

var someVar1 = someArray1[2]

someArray1[1]="234"

someArray1

 

//数组的追加值

 

var someArray4=[Int]()//创建一个初始化数据为空的数据

someArray4.count

someArray4.append(10)

someArray4.append(13)

someArray4.append(15)

//数据的遍历 for in

for someVar2 in someArray4

{

    print(someVar2)

}

//遍历数组的下标和值 enumerated 枚举的意思

for (index , item) in someArray4.enumerated()

{

    print("下标\(index) 值为\(item)")

}

 

//合并数据 +

var someArray5 = someArray1+someArray2

//数组删除某个元素

someArray4.remove(at: 1)

someArray4.remove(at: 1)

 

someArray4.count

 

print(someArray4)

 

//更改数据的某个元素

someArray4[0]=222;

someArray4

 

//判断数据是否为空

if someArray5.isEmpty {

    print("数组为空")

    

}else{

    print("数组不为空")

}

 

一、声明 

swift数组中的类型必须一致,这一点与OC不同

 

// 数组初始化

var numbers = [0,1,2,3,4,5]

var vowels  = ["A","E","I","O","U"]

 

// 数组的类型: [Int] 或者 Array<Int>

//var numbers: [Int] = [0,1,2,3,4,5]

//var numbers: Array<Int> = [0,1,2,3,4,5]

 

// 空数组

var emptyArray1:[Int] = []

var emptyArray2:Array<Int> = []

var emptyArray3 = [Int]()

var emptyArray4 = Array<Int>()

 

// 创建具有默认值的数组(相同元素的数组)

var allZeros = Array<Int>(repeating: 0, count: 5)

//[0,0,0,0,0]

var allZeros2 = [Int](repeating: 0, count: 5)

//[0,0,0,0,0]

 

二、常用方法

 

var numbers = [1,2,3,4,5]

var vowels = ["A","E","I","O","U"]

var emptyArray = [Int]()

 

 

// 数组长度

vowels.count

 

 

// 判空

numbers.isEmpty

emptyArray.isEmpty

 

 

// 获取元素

vowels[2]

// 数组越界是一个严重的错误

//vowels[-1]

//vowels[5]

 

 

// 获取第一个元素和最后一个元素,返回的是可选型

vowels.first  

vowels.last   //.first和.last的返回值都为可选型

emptyArray.first

 

if let firstVowel = vowels.first{

    print("The first vowel is " + firstVowel)

}

 

vowels.first!

 

vowels[vowels.count-1]

 

// 获取最小,最大值

numbers.min() //1

vowels.max()  //U

 

 

// 使用范围

numbers[2..<4]  //[3,4]

numbers[2..<numbers.count]  //[3,4,5]

 

 

// 包含

vowels.contains("A")

vowels.contains("B")

 

let letter = "A"

if vowels.contains( letter ){

    print("\(letter) is a vowel")

}

else{

    print("\(letter) is not a vowel")

}

 

 

vowels.index(of: "E")  //获取索引,返回值为可选型

 

if let index = vowels.index(of: "E"){

    print("E is a vowel in position \(index+1).")

}

else{

    print("E is not a vowel.")

}

 

 

// 遍历

for index in 0..<numbers.count{

    numbers[index]

}

 

for number in numbers{

    print(number)

}

 

for (index, vowel) in vowels.enumerated(){

    //遍历数组索引和元素

    print("\(index+1): \(vowel)")

}

 

 

// 比较

var oneToFive = [1,2,3,4,5]

numbers == oneToFive  //true

 

var oneToFive2 = [1,2,4,3,5]

numbers == oneToFive  //true

 

//swift 3.0之前数组是有序的数据集合,swift 3.0后为无序

 

三、更多操作

 

var courses = ["A","B","C"]

 

// 添加元素

courses.append("D")  //["A","B","C","D"]

print(courses)

 

// 数组常量

//使用let定义的数组不可以更改任何内容

 

courses += ["E"]  //+=后面必须和前面的类型一致 //["A","B","C","D","E"]

print(courses)

 

// 两个数组相加

courses = courses + ["F","G"]  //+后面必须是数组

//["A","B","C","D","E","F","G"]

print(courses)

 

courses.insert("Q", at: 5)  

//["A", "B", "C", "D", "E", "Q", "F", "G"]

print(courses)

 

 

// 删除元素

courses.removeLast()

//["A", "B", "C", "D", "E", "Q", "F"]

print(courses)

 

courses.removeFirst()

//["B", "C", "D", "E", "Q", "F"]

print(courses)

 

courses.remove(at: 4)

//["B", "C", "D", "E", "F"]

//courses.removeAtIndex(10)

print(courses)

 

 

//区间删除操作

//courses.removeRange(0..<4)

//courses.removeRange(0..<10)

//print(courses)

 

//courses.removeAll()

//print(courses)

 

 

// 修改元素

courses[0] = "W"

//["W", "C", "D", "E", "F"]

print(courses)

//范围修改

courses[1...3] = ["W","W","W"]

//["W", "W", "W", "W", "F"]

print(courses)

 

courses[0...3] = ["W"]

//["W", "F"]

print(courses)

 

四、二维数组

 

var board = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ]

//var board:[[Int]] = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ]

//var board:[Array<Int>] = = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ]

//var board:Array<[Int]> = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ]

//var board:Array<Array<Int>> = [ [1024,16,2,0] , [256,4,2,0] , [64,2,0,0] , [2,0,0,0] ]

 

 

// 二维数组获取元素

board[0]

board[0][0]

 

 

// 获取二维数组两个维度的信息

board.count

board[0].count

 

 

// Swift中的二维数组,每一维度的元素数目可以不同

board[0].append(0)

board

 

 

// 为二维数组的第一个维度添加的元素是一个数组

board.append([0,0,0,0])

board += [ [0,0,0,0] ]

board

 

五、NSArray 

NSArray是一个类,Array是一个结构体

 

var array1 = []  //会默认是NSArray,swift3.0之后该写法废除

 

var array2 = [1,2,3,4,5] as NSArray

 

var array3: NSArray = [1,"hello"]

 

var array4: [NSObject] = [1 as NSObject,"hello" as NSObject]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值