由于Swift的api不断更新,网上不少的方法,新的已经不再兼容。本文提供一些最新的关于数组方面的知识,但不是最全的。
1、建立数组
//创建空数组
var arr1 = [Int]()
var arr2 = Array<Int>()
//创建有默认值的数组
var arr3 = [1,9,3,1,4]
var arr4 = Array<Int>(repeating: 1, count: 5)
2、尾部添加元素
var arr = [3,4,5,6]
arr.append(7)
print(arr)
//尾部添加元素类型相同的数组
var arr1 = [0,1,2]
arr = arr + arr1
print(arr)
3、指定位置添加元素
var arr = [3,4,5,6]
arr.insert(0, at: 1)
print(arr)
4、删除指定位置元素
var arr = [3,4,5,6]
arr.remove(at: 1)
print(arr)
5、删除第一个位置元素
///删除第一个元素
var arr = [1,2,3,4,5]
arr.remove(at: 0)
print(arr)
//删除第一个元素,可以接受该元素,也可以不接受,都能实现删除
var firstNum = arr.removeFirst()
print(arr)
print(firstNum)
//带参数的removeFirst(k):从第0个元素开始删除k个元素
arr.removeFirst(2)
print(arr)
6、删除指定范围的元素
//删除指定范围的元素
var arr = [1,2,4,5,6,8,10,7,11,23,43]
//删除index从2到5的元素
arr.removeSubrange(2...5)
print(arr)
7、删除最后的元素
//删除最后的元素
var arr = [3,5,2,2,4,1,4,1,21,4]
//删除最后一个元素
arr.removeLast()
print(arr)
//删除最后一个元素,可以接受该元素,也可以不接受,都能实现删除
var lastNum = arr.removeLast()
print(lastNum)
print(arr)
//删除最后一个元素,和removeLast不同的是,为空的时候,不为报错,会返回nil
arr.popLast()
print(arr)
//删除从最后一个元素开始,往前数k个元素
arr.removeLast(3)
print(arr)
8、修改数组元素
//修改某个位置元素
var arr = [3,5,7,8,9,11,34,54]
arr[3] = 99
print(arr)
//修改某个范围的元素
arr.replaceSubrange(3...5, with: [0,0,0,0,0])
print(arr)
9、获取对应位置的元素
//获取某个位置的元素
var arr = [3,5,7,8,9,11,34,54]
var num = arr[3]
var first = arr.first!
var last = arr.last!
print(num)
print(first)
print(last)
10、元素截取
//截取从0开始前K个元素,截取后的元素要用新数组接收
var arr = [3,5,7,8,9,11,34,54]
var newArr = arr.prefix(upTo: 3)
print(newArr)
//截取从最后面开始的K个元素,截取后的元素要用新数组接收
var newArrTwo = arr.suffix(2)
print(newArrTwo)
//截取从开头开始k个,之后的元素
var arrTwo = [2,4,6,1,5,21,5,31,2,4]
var newArrThr = arrTwo.dropFirst(3)
print(newArrThr)
print(arrTwo)
//截取从尾部开始k个元素之前的所有元素
var newArrFor = arrTwo.dropLast(2)
print(newArrFor)
11、根据元素获取位置
//获取第一个元素
var arr = [3,4,6,7,4,3,76,7,32]
//第一次找到该元素的位置
var index = arr.firstIndex(of: 4)
//最后一次出现该元素的位置
var indexTwo = arr.lastIndex(of: 4)
print(index)
print(indexTwo)
12、数组排序
var arr = [3,4,6,7,4,3,76,7,32]
//<升序 >降序
arr.sort(by: >)
print(arr)
//倒序,不需要新数组接收
arr.reverse()
print(arr)
13、数组遍历
var arr = [3,4,6,7,4,3,76,7,32]
for i in 0..<arr.count {
print(arr[i])
}
for num in arr {
print(num)
}
//index,num同事遍历
for (index,num) in arr.enumerated(){
print(index)
print(num)
}
arr.forEach { (num) in
print(num)
}
//倒序遍历
for num in arr.reversed() {
print(num)
}
这是我个人初学swift总结的部分知识点,后续会及时根据api保持最新。如有问题,欢迎大家留言区指出。