Swift语言创建数组,合并、插入、删除数组元素
创建数组
一、创建空数组
//创建item类型为int的空数组
var intsArr = [Int]()
intsArr = [];
print("intsArr is of type [Int] with \(intsArr.count) items.")
//打印输出:intsArr is of type [Int] with 0 items.
二、创建数值型数组
直接用字面量创建数组类型,数组字面量是一系列由逗号分割并由方括号包含的数值:
//创建一个有3个double类型值的数组[0.0,.0.0,0.0]
var threeDoubles1:[Double] = [0.0,0.0,0.0]
var threeDoubles2 = Array(repeating: 0.0, count: 3)
print("threeDoubles1 = \(threeDoubles1)\n threeDoubles2 = \(threeDoubles2)")
//打印输出:
/*
threeDoubles1 = [0.0, 0.0, 0.0]
threeDoubles2 = [0.0, 0.0, 0.0]
*/
//直接用字面量创建数组类型
var goodsListArr:[String] = ["onions","eggs","apple","orange","pear","salt"]
//判断数组是否为空
if goodsListArr.isEmpty {
print("The shopping list is empty.")
}else {
print("The shopping list is not empty.")
}
//打印输出:
//The shopping list is not empty.
数组编辑
一、数组合并
可以使用加法操作符(+)来组合两种已存在的相同类型数组
。新数组的数据类型会被从两个数组的数据类型中推断出来
:
//数组合并
threeDoubles1 += threeDoubles1
print("数组合并结果:\(threeDoubles1)")
//打印输出:
//数组合并结果:[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
let anotherThreeDoubles = Array(repeating: 2.5, count: 3)
let sixDoubles = threeDoubles2 + anotherThreeDoubles;//数组合并
print("合并结果:\(sixDoubles)")
//打印输出:
//合并结果:[0.0, 0.0, 0.0, 2.5, 2.5, 2.5]
二、替换数组索引值
数组索引
如果我们试着对索引越界的数组进行检索或者设置新值的操作,会引发一个运行期错误。我们
可以使用索引值和数组的count属性进行比较来在使用某个索引之前先检验是否有效
。除了当count等于 0 时(说明这是个空数组),最大索引值一直是count - 1
,因为数组都是零起索引
//数组索引
let arrFirstItem = goodsListArr[0]//根据索引 取对应的索引值
print("firstItemValue:\(arrFirstItem)")
//打印输出: firstItemValue:onions
替换索引值
//替换数组索引值
goodsListArr[0] = "eight onions"//将第一个索引值替换掉
// 其中的第一项现在是 "Six onions" 而不是 "onions"
print("Replace the former results:\(goodsListArr)")
//替换后的结果:
//Replace the former results:["eight onions", "eggs", "apple", "orange", "pear", "salt"]
替换某个范围的索引值
//将某个范围的值替换掉
//将2、3、4索引上的3个值("apple", "orange", "pear") 替换 成("Bananas", "Apples")
goodsListArr[2...4] = ["Bananas", "Apples"]
print("results of substitution:\(goodsListArr)")
//替换后的结果:
//results of substitution:["eight onions", "eggs", "Bananas", "Apples", "salt"]
三、数组插入元素
//在数组的末尾添加一个元素(不可以用下标访问的形式去在数组尾部添加新项)
goodsListArr.append("vinegar")
//给数组添加多个元素(从尾部添加)
goodsListArr += ["Chocolate Spread", "Cheese", "Butter"]
//在数组中插入元素,调用数组的insert(<#T##newElement: String##String#>, at: <#T##Int#>)方法来在某个具体索引值之前添加数据项
goodsListArr.insert("books", at: 0)//在0索引之前添加数据,现在数组第一个元素是“books”
四、删除数组元素
根据索引删除
//根据索引移除数组中某一个元素
let removeItem = goodsListArr.remove(at: 0)//将数组的第一个元素移除并获取被移除的第一项元素
print("removed index 0 item is:\(removeItem) After removing the results:\(goodsListArr)")
//打印输出:
//removed index 0 item is:books After removing the results:["eight onions", "eggs", "Bananas", "Apples", "salt", "vinegar", "Chocolate Spread", "Cheese", "Butter"]
删除第一个元素值
//将数组的第一个元素移除并获取被移除的第一个元素值
let removeFirstItem = goodsListArr.removeFirst()
print("removed first item is:\(removeFirstItem) After removing the results:\(goodsListArr)")
//打印输出:
//removed first item is:eight onions After removing the results:["eggs", "Bananas", "Apples", "salt", "vinegar", "Chocolate Spread", "Cheese", "Butter"]
删除最后一个元素值
//将数组的最后一个元素移除并获取被移除的最后一个元素值
let removeLastItem = goodsListArr.removeLast()
print("removed last item is:\(removeLastItem) After removing the results:\(goodsListArr)")
//打印输出:
//removed last item is:Butter After removing the results:["eggs", "Bananas", "Apples", "salt", "vinegar", "Chocolate Spread", "Cheese"]
数组声明为可变时,才能使用增,删,改等方法,常量数组不能进行修改相关操作
var array = [1, 2, 3, 4, 5, 6, 7, 8]
print(array.count) // 8
// 判断数组是空数组
if array.isEmpty {
print("array is empty")
} else {
print("array is not empty")
}
// 通过下标访问元素
var ele = array[1] // 2
// 截取新数组
var subArray = array[1...2] // [2, 3]
// 获取第一个元素
var firstEle = array.first // 1
// 获取最后一个元素
var lastEle = array.last // 8
// 修改下标对应的元素
array[1] = 22
array // [1, 22, 3, 4, 5, 6, 7, 8]
// 修改指定范围的元素
array[0...2] = [1, 2, 3] // [1, 2, 3]
// 追加单个元素
array.append(9) // [1, 2, 3, 4, 5, 6, 7, 8, 9]
// 追加一组元素
array.append(contentsOf: [10, 11, 12]) // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
// 在指定位置插入单个元素
array.insert(0, at: 0) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
// 在指定位置插入一组元素
array.insert(contentsOf: [-3, -2, -1], at: 0) // [-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
// 替换指定范围的元素
array.replaceSubrange(0...3, with: [1, 2, 3, 4]) // [1, 2, 3, 4]
// 移除指定元素
array.remove(at: 1) // -2
// 移除一组元素
array.removeSubrange(0...2) // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
// 移除首个元素
array.removeFirst() // 1
// 移除末尾元素
array.removeLast() // 12
// 移除前几个元素
array.removeFirst(3) // [5, 6, 7, 8, 9, 10, 11]
// 移除后几个元素
array.removeLast(3) // [5, 6, 7, 8]
// 判断包含指定元素
if array.contains(3) {
print("array contains 3")
}
// 移除所有元素
array.removeAll() // []
var sortArr = [2, 1, 3, -1]
// 从大到小排序
sortArr.sorted(by: >) // [3, 2, 1, -1]
// 从小到大排序
sortArr.sorted(by: <) // [-1, 1, 2, 3]
// 获取数组最小值
sortArr.max() // 3
// 获取数组最大值
sortArr.min() // -1