在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Swift中数组是一种数据结构,用来存放多个形同类型的数据结构,数据在数组内的存放是有序的,存进来的数据个读出来的顺序相同 Object-C 中数组能够存放任意类型的数据类型为[AnyObject]
Swift中数组有两种形式: 可变数组:用var修饰,数组的内容及长度可以任意修改 不可变数组:用let修饰,数组的内容及长度都不能修改 Object-C 数组中也有两种形式 不可变数组:let arr: NSArray = NSArray.init(objects: 10,”hello”,1.234) 可变数组: let arr: NSMutableArray = NSMutableArray.init(capacity:0) 将数组所有内容全部赋给另一个数组(用于表格、集合视图中) let arr = NSArray.init(array: arr1) let arr = NSArray.init(object: arr1) 创建空数组(4种): let arr: [Int] = [Int]() let arr: Array<String> = Array<String>() let arr: [Double] = Array() let arr: [Int] = [] 使用简单方法创建数组: var arr:[Int] = [1,2,3,4,5,6]
指定元素个数和元素内容: var arr = Array<Int>(count :2,repeatedValue: 100) //[100,100] 指定元素内容: var arr = Array(arrayLiteral:“Hello World”) 判断数组中的元素是否为空 if arr.isEmpty{ print(“空”) }
if arr.count == 0{ print(“空”) } 访问数组的元素 根据下边查找:下标从0开始,最后一个元素下标 = 数组中的元素个数 - 1 遍历数组中的所有元素: Swift: for i in arr{ print(i) } for i in arr.count - 1{ print(arr[i]) } Objective -C for i in 0…arr.count - 1{ print(arr[i]) } for i in arr{ print(i) } 获取指定范围内的元素: print(arr[0…2]) 查找某个元素首次在数组中出现的位置: if arr.contains(“Hello”){ print(arr.indexOf(“Hello”)!) } Objective - C: if arr.containsObject(“Hello”){ print(arr.indexOfObject(“Hello”)) // 输出的是索引的地址 } Objective - C 获取数组中第一个元素和最后一个元素 print(arr.firstObject) print(arr.lastObject) 向数组中添加内容:
追加单个元素 arr.append(“Swift”) Objective -C arr.addObject(“Swift”) 追加整个数组 arr.appendContensOf([1,2,3,4,54])
Objective -C arr.addObject([1,2,3,4,54]) 使用加号追加新的内容
arr += [1,2,3,4,45]
向指定位置插入元素
arr.insert(“swift”,atIndex: 1) //插入单个元素 arr.insertContensOf([1,2,3,4], at : 0) //插入数组 Objective-C arr.insertObject(“swift”,atIndex: 1) 通过下标区间插入元素
arr[0…2] = [1,”HELLO”,3] 删除数组元素 arr.removeFirst() //删除第一个元素 arr.removeLast() //删除最后一个元素 Swift arr.removeAtIndex(3) //删除指定索引的元素 Objective-C arr.removeObjectAtIndex() Swift arr.removeRange(0…4) //删除一定范围内的元素 Objective -C arr.removeObjectInRange(NSRange.init(location:0,length: 1)) Swift arr.removeAll() //清空整个数组 Objective -C arr.removeAllObjects Objective-C arr.removeLastObject //删除最后一个元素 if arr.containsObject(“123”){ //删除指定元素,重复的会全部删除 arr.removeObject(“123”) } 修改数组中的内容 arr[4] = “修改的内容” //修改指定下标的元素 arr.replaceRange(0…3,with:[3]) //修改一定范围内的元素 arr[0…3] = [1000,2000] Objective -C arr.replaceObjectAtIndex(0,withObject:”1234”)
数组排序 arr.sortInPlace //系统提供的排序函数,只能做升序
冒泡排序:
第一趟:0 100,998,-10,50,1,30 100,-10,998,50,1,30 100,-10,50,998,1,30 100,-10,50,1,998,30 100,-10,50,1,30,998 ------ 998
第二趟:1 -10,100,50,1,30,998 -10,50,100,1,30,998 -10,50,1,100,30,998 -10,50,1,30,100,998 -------100
第三趟:2 -10,50,1,30,100,998 -10,1,50,30,100,998 -10,1,30,50,100,998 -------50
第四趟:3 -10,1,30,50,100,998 -10,1,30,50,100,998 -------30
第五趟:4 -10,1,30,50,100,998 -------1 //冒泡排序外层控制趟数内层控制每一趟比较的次数 for i in 0..<tmp_arr.count - 1{ //比较的趟数=元素的个数-1 for j in 0..<tmp_arr.count - i - 1 { if tmp_arr[j] < tmp_arr[j + 1] { //if 语句就是实现交换功能 let tmp = tmp_arr[j] //交换两个数的大小 使用第三个变量做桥接 tmp_arr[j] = tmp_arr[j + 1] tmp_arr[j + 1] = tmp } } } 将数组中的元素用指定的字符进行拼接 let arr1:NSArray = [1,2,3,”china”,98.0] let str1 = arr1.componentJoinedByString(“-”) //str1 = 1-2-3-china-98.0 将字符串按照指定的字符串进行分割(分割的结果是一个数组) var arr2: NSArray = str1.componentSeparatedByString(“-”) 交换数组中元素的显示位置 arr.exchangeObjectAtIndex(0,withObjectAtIndex:2)
例子: // 设计⼀个学生类,成员有姓名,年龄。 要求创建三个学生类对象,分别按年龄升序,名字降序进行排序 class Student { var name: String var age: Int
init(name: String,age: Int) { self.name = name self.age = age } } let stu1 = Student.init(name: "stu1", age: 10) let stu2 = Student.init(name: "stu2", age: 7) let stu3 = Student.init(name: "stu11", age: 20)
let arrayStu = NSMutableArray.init(capacity: 0) arrayStu.addObject(stu1) arrayStu.addObject(stu2) arrayStu.addObject(stu3)
for i in 0..<arrayStu.count - 1 {
for j in 0..<arrayStu.count - 1 - i {
var tmp1 = arrayStu[j] as! Student var tmp2 = arrayStu[j + 1] as! Student
if tmp1.name < tmp2.name {
arrayStu.exchangeObjectAtIndex(j, withObjectAtIndex: j + 1) } } } |
请发表评论