Swift 数组
来源:互联网 发布:死神人物能力数据 编辑:程序博客网 时间:2024/05/14 19:06
Swift数组使用有序列表存储同一类型的多个值。相同的值可以多次出现在一个数组的不同位置中。
Swift数组会强制检测元素的类型,如果类型不同则会则会报错,Swift数组应该遵循像Array < Element >这样的形式,气宗Element是这个数组中唯一允许存在的数据类型。
如果创建一个数组,并赋值给一个变量,则创建的集合就是可以修改的。这意味着在创建数组后,可以通过添加、删除、修改的方式改变数组里的项目。如果将一个数组赋值给常量,数组就不可更改,并且数组的大小和内容都不可以修改。
注意: 数组初始化时定义了元素类型后,在后续使用中,元素类型必须是统一的。但如果定义了类型为『Any』,或『AnyObject』时,则数组中可以使用任意类型的元素,同时『Any』类型时,还可以包含方法selector类。
一、创建数组
- 1、使用构造语法来创建一个由特定数据类型构成的空数组:
var someArray = [SomeType]()
- 2、创建一个初始化大小数组的语法
var someArray = [SomeType](repeating: InitialValue, count: NumbeOfElements)
- 3、数组的初始化
let arrayTmp01 = Array<String>() let arrayTmp02 = [String]() let arrayTmp03:Array<String> = [] let arrayTmp04:[String] = []
- 3、例子
let someInts01 = [Int](repeating: 0, count: 3)print(someInts01)let someInts02:[Int] = [10, 20, 30]print(someInts02)
输出:
[0, 0, 0][10, 20, 30]
二、数组操作
1、访问数组
可以根据数组的索引来访问数组的元素,语法如下:
var someVar = someArray[index]
index 索引从 0 开始,即索引 0 对应第一个元素,索引 1 对应第二个元素,以此类推。
let array01:[Int] = [1,2,3,4,5]// 第一个元素let item01 = array01.firstprint(item01)// 最后一个元素let item02 = array01.lastprint(item02)// 获取下标未0的元素let value01 = array01[0]print(value01)//查找元素为1的下标let value02 = array01.index(of: 1)print(value02)
输出
Optional(1)Optional(5)1Optional(0)
2、数组遍历
let array = ["1", "2", "3", "4"]for value in array { print("value = \(value)")}for i in 0..<array.count { print(array[i])}for (index, value) in array.enumerated() { print("index = \(index), value = \(value)")}
输出:
value = 1value = 2value = 3value = 41234index = 0, value = 1index = 1, value = 2index = 2, value = 3index = 3, value = 4
3、添加元素
var array = [1, 2, 3]// 添加单个元素array.append(4)print(array)//添加元素数组array = array05 + [5, 6, 7] //print(array)//添加元素集合array.append(contentsOf: [8,9])print(array)array.append(contentsOf: 10...15) // 元素序列print(array)// 添加元素(添加到指定位置)array.insert(0, at: 0)print(array)
输出:
[1, 2, 3, 4][1, 2, 3, 4, 5, 6, 7][1, 2, 3, 4, 5, 6, 7, 8, 9][1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15][0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
4、删除元素
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9]// 删除首个元素array.removeFirst()print(array)// 删除尾部元素array.removeLast()print(array)// 删除指定下标元素array.remove(at: 0)print(array)// 保持数组容量array.removeAll(keepingCapacity: true)print(array.capacity)// 删除所有元素array.removeAll()print(array)
输出:
[2, 3, 4, 5, 6, 7, 8, 9][2, 3, 4, 5, 6, 7, 8][3, 4, 5, 6, 7, 8]9[]
5、修改元素
var array = [0, 2, 3]array[0] = 1print(array)
输出:
[1, 2, 3]
6、数组元素个数
let array = [1, 2, 3]// 数组元素个数let count = array.countprint(count)
输出:
3
7、isEmpty 属性
let array01 = [1, 2, 3]// 判断数组是否为空let isValid01 = array01.isEmptyprint(isValid01)let array02 = [Int]()let isValid02 = array02.isEmptyprint(isValid02)
输出:
falsetrue
8、数组是否包含某个元素
let array = [1, 2, 3]// 是否包含某个元素let contant: Bool = array.contains(1)print("array \(contant) 包含 1")
输出:
array true 包含 1
9、数组转字符串
let array = ["1", "2", "3", "4", "5", "6", "7"]let stringMark: String = "_";let string = array.joined(separator: stringMark)print("数组转字符串:\(string)")let arrayString = string.components(separatedBy: stringMark)print("字符串转数组:\(arrayString)")
输出:
数组转字符串:1_2_3_4_5_6_7字符串转数组:["1", "2", "3", "4", "5", "6", "7"]
10、数组排序
let array = [1, 2, 3, 5, 7, 9, 0, 4, 6, 8]// 数组排序(注意:$0, $1(从0开始,表示第i个参数...))let arraySort01 = array.sorted { (n1, n2) -> Bool in //从小到大 //return n1 > n2 //从大到小 return n1 < n2}print(arraySort01)let arraySort02 = array.sorted(by: { // 从小到大 // return $0 > $1 // 从大到小 return $0 < $1})print(arraySort02)let arraySort03 = array.sorted(){ // 从小到大 // $0 > $1 // 从大到小 $0 < $1}print(arraySort03)
输出:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9][0, 1, 2, 3, 4, 5, 6, 7, 8, 9][0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
11、数组的批量操作
// 数组批量操作var arrayBatch01 = [1,2,3,4,5]print("1 批量修改:\(arrayBatch01)")arrayBatch01[1...2] = [8,8]print("2 批量修改:\(arrayBatch01)")arrayBatch01.replaceSubrange(Range(uncheckedBounds: (3, 4)), with: [10, 10])print("3 批量修改:\(arrayBatch01)")
输出:
1 批量修改:[1, 2, 3, 4, 5]2 批量修改:[1, 8, 8, 4, 5]3 批量修改:[1, 8, 8, 10, 10, 5]
阅读全文
0 0
- 【Swift初见】Swift数组
- Swift数组
- [Swift]数组
- Swift-数组
- Swift 数组
- swift数组
- swift数组
- Swift-数组
- Swift数组
- Swift 数组
- Swift 数组
- Swift 数组
- Swift数组
- Swift-数组
- Swift-数组
- swift-数组
- swift 数组
- swift数组
- mate8无法打日志问题
- Android Fragment学习与使用—高级篇
- 阿里云ubuntu 安装tomcat不能访问
- SAP报表开发
- spring data jpa 使用(一)
- Swift 数组
- 皮尔逊相关度评价函数
- JAVA设计模式之单例模式
- stm32_2.GPIO的主要寄存器
- Linux ACL特殊权限之查看与开启(临时和永久)
- Palindrome HDU
- PHP Parse error: syntax error, unexpected '.'
- 深入分析 ThreadLocal 内存泄漏问题
- [门户自用]解决cms门户后台模板页面报错问题 原因,可能缺少以下表JC_DIRECTIVE_TPL