文章目录
- 数组的创建
- 在尾部添加新数据
- 取值
- 修改
- 增加
- 替换
- 删除
- 判断数组中是否包含指定数据
- 数组的排序
- 数组过滤
- 数组比较
- 遍历数组
数组的创建
var a = [1,2,3,4]
var b:[String] = ["hello","world"]
var c:Array<Double> = []
通过初始化器,定义可变数组 初始化器就是一个构造方法
var array = [Int]()
通过Array
初始化器,生成一个,初始化为-1,长度为3的数组
var array1 = Array(repeating: -1, count: 3)
/// 打印结果 [-1, -1, -1]
全部替换成1,2,3
array1.replaceSubrange((0..<array1.count), with: [1,2,3])
/// 打印结果为 [1,2,3]
在尾部添加新数据
添加的数据类型要和声明的数据类型相同
array.append(1)
用
let
定义的常量,不可以变数组,不能改变长度和数据,但是可以取值,不可以添加不可以修改
取值
和OC一样根据脚标取值
a[0]
修改
修改的类型一定要和初始化的类型相同
a[0] = 3
增加
定义可修改的数组时要使用var
在尾部增加append
var array = ["hello","wold","swift"]
array.append("1") //直接在尾部增加
array+=["2"] //加号拼接
print(array)
// ["hello", "wold", "swift", "1", "2"]
在指定索引位置插入新数据insert
var array = ["2","3","4"]
array.insert("1", at: 0)
print(array)
//["1", "2", "3", "4"]
替换
将数组索引1,2,3位置的数据,替换成后[“20”,”30”]数据
var array = ["2","3","4","5"]
array.replaceSubrange((1...3), with: ["20","30"])
print(array)
// 打印结果:["2", "20", "30"]
将数组索引为0的位置的数据,替换成后面[“11”,”111”]数据
var array = ["2","3","4","5"]
array.replaceSubrange((0..<1), with: ["11","111"])
print(array)
// 打印结果:["11", "111", "3", "4", "5"]
删除
删除索引位置上的数据
var array = ["2","3","4","5"]
array.remove(at: 0)
print(array)
// 打印结果:["3", "4", "5”]
删除全部
var array = ["2","3","4","5"]
array.removeAll()
print(array)
// 打印结果:[]
判断数组中是否包含指定数据
var array = ["2","3","4","5"]
var b = array.contains("2")
print(b)
// 打印结果:true
b = array.contains(“1")
print(b)
// 打印结果:false
数组的排序
var array = ["A","C","D","B","F","E"]
//倒序排序
array.sort(by: {(item1,item2) -> Bool in
if (item1>item2) {
return true
}
else {
return false
}
})
print(array)
// 打印结果 ["F", "E", "D", "C", "B", "A"]
数组过滤
var array = ["A","C","D","B","F","E"]
//过滤
var new_array = array.filter {(item) -> Bool in
if (item != "D") {
return true
} else {
return false
}
}
print(new_array)
// 打印结果 ["A", "C", "B", "F", "E"]
数组比较
var array1 = [1,2,3]
var array2 = [1,2,4]
if array1 == array2 {
print("array1与array2相等")
} else {
print("array1与array2不相等")
}
// 打印结果 array1与array2不相等
array2[2] = 3
if array1 == array2 {
print("array1与array2相等")
} else {
print("array1与array2不相等")
}
// 打印结果 array1与array2相等
如果数组中的数据内容是一样的 但顺序是不一样的 也是不相等的 因为数组是有序的
var array1 = [1,2,3]
var array2 = [1,3,2]
if array1 == array2 {
print("array1与array2相等")
} else {
print("array1与array2不相等")
}
// 打印结果 array1与array2不相等
遍历数组
var array = ["A","B","C","D"]
//通过区间运算符,获取索引遍历
//通过索引遍历数组
for index in 0..<array.count {
print(array[index])
}
// ABCD
//直接取值遍历
for item in array {
print(item)
}
// ABCD
//利用区间运算符直接取值遍历
for item in array[0...] {
print(item)
}
// ABCD
//利用区间运算符,控制范围直接遍历取值
for item in array[1...2] {
print(item)
}
// BC
//通过区间运算符获取索引,反向遍历
for index in (0..<array.count).reversed() {
print(array[index])
}
// DCBA