/**************** Mutable Array 这里是NSArray和Array通用的方法 ****************/
在数组的末位增加元素
open func add(_ anObject: Any)
在固定的地方给数组里增加元素
open func insert(_ anObject: Any, at index: Int)
删除数组中最后1个元素
open func removeLastObject()
删除数组中指定的元素
open func removeObject(at index: Int)
更改数组中指定位置元素的值
open func replaceObject(at index: Int, with anObject: Any)
正常初始化
public init()
创建一个预估数组长度的数组初始化
public init(capacity numItems: Int)
初始化 遵循NSCoding协议吧 具体我也没研究出来 因为不常用就占时放弃了 等有空了再说吧
public init?(coder aDecoder: NSCoder)
/** 可变数组专属方法 */
添加多个数组元素
open func addObjects(from otherArray: [Any])
将数组指定位置元素调换位置
open func exchangeObject(at idx1: Int, withObjectAt idx2: Int)
删除所有元素
open func removeAllObjects()
删除指定元素 从第数组的第几位开始 往下寻找几位 如果有就删除 没有就算
open func remove(_ anObject: Any, in range: NSRange)
删除指定元素
open func remove(_ anObject: Any)
这里删除指定元素 且在NSrange规定里查找 这里测试 字符串数组无用,字符串数组只能写为Array[0] 直接删除才可以 而int类型的数组可以
open func removeObject(identicalTo anObject: Any, in range: NSRange)
直接删除指定元素 字符串数组同上不行 数字数组可以 摸索了半天 估计是个坑
open func removeObject(identicalTo anObject: Any)
删除数组元素
open func removeObjects(in otherArray: [Any])
删除指定位置的元素 具体参考NSRange 或者看我代码
open func removeObjects(in range: NSRange)
/** 以下的方法我也不知道常用不常用 反正我是查了资料暂时没找到准确的也没试出来 等我有空了再补齐吧 😆 */
open func replaceObjects(in range: NSRange, withObjectsFrom otherArray: [Any], range otherRange: NSRange)
open func replaceObjects(in range: NSRange, withObjectsFrom otherArray: [Any])
open func setArray(_ otherArray: [Any])
open func sort(_ compare: @convention(c) (Any, Any, UnsafeMutableRawPointer?) -> Int, context: UnsafeMutableRawPointer?)
open func sort(using comparator: Selector)
open func insert(_ objects: [Any], at indexes: IndexSet)
open func removeObjects(at indexes: IndexSet)
open func replaceObjects(at indexes: IndexSet, with objects: [Any])
可变数组的初始化
var cccc = NSMutableArray.init(coder: )
创建了1个预估有2个元素组成的可变数组
var ssss = NSMutableArray.init(capacity: 2)
数组初始化 并且赋值
var aaaa = NSMutableArray.init(array: ["ssss","aaaa","cccc"])
可变数组初始化
var dddd = NSMutableArray.init()
/** 可变数组 - 不可变数组 --> 通用的方法 */
var namesArr = NSMutableArray.init()
namesArr = ["dddd","2222","aaass"]
//访问第一个元素和最后一个元素
print("第一个元素:\(String(describing: namesArr.firstObject))")
print("最后一个元素:\(String(describing: namesArr.lastObject))")
//这里修改了数组第3位的元素值
namesArr[2] = "3333"
//在数组的末尾增加一个元素
namesArr.add("4444")
//在第二元素位置上增加1个元素
namesArr.insert("hahah", at: 1)
//删除数组中最后1个元素
namesArr.removeLastObject();
//删除数组中指定位置的元素
namesArr.removeObject(at: 1)
print(namesArr)
//更改第一位元素的值
namesArr.replaceObject(at: 0, with: "XXXXX")
print(namesArr)
//删除所有的元素
namesArr.removeAllObjects()
/** 可变数组专属方法 */
let StudentsArr = NSMutableArray.init(array: ["涛涛","耗子","飞飞","蕾蕾"])
//添加多个数组元素
StudentsArr.addObjects(from: ["洋洋","超超"])
print("数组里的属于=\(StudentsArr)")
for value in StudentsArr {
print("1\(value)")
}
//这里讲第1个位置的元素和第0个位置的元素进行了调换
StudentsArr.exchangeObject(at: 1, withObjectAt: 0)
for value in StudentsArr {
print("2\(value)")
}
//删除指定元素 从第数组的第3位开始 往下寻找2位 如果有就删除 没有就算
StudentsArr.remove("飞飞", in: NSMakeRange(3, 2))
for value in StudentsArr {
print("```\(value)")
}
//删除了111 从第数组的第0位开始 往下寻找2位 如果有就删除 没有就算
let NumArray = NSMutableArray.init(array: [111,222,333,444,555])
NumArray.removeObject(identicalTo:111, in: NSMakeRange(0, 1))
for value in NumArray {
print("~~\(value)")
}
//删除指定元素 字符串数组不行
NumArray.removeObject(identicalTo:222)
for value in NumArray {
print("**\(value)")
}
//删除数组元素
StudentsArr.removeObjects(in:["耗子","涛涛"])
for value in StudentsArr {
print("~~\(value)")
}
//这里删除第一个元素开始往下的2个位置的元素
StudentsArr.removeObjects(in: NSMakeRange(0, 2))
for value in StudentsArr {
print("111\(value)")
}
/** 创建不可变的数组 */
let vowels = ["M","I","S","S"]
print(vowels)
}
/** 页面将要显示的时候做的数据处理 */
override func viewWillAppear(_ animated: Bool) {
//创建一个数组 调用下面的函数 并且打印出数组中的最小的值和最大的值
let bounds = minMax(array: [8, -6, 2, 109, 3, 71])
print("min is \(bounds.min) and max is \(bounds.max)")
}
/** 找出最大值和最小值 */
func minMax(array: [Int]) -> (min: Int, max: Int) {
var currentMin = array[0]
var currentMax = array[0]
for value in array[1..<array.count] {
if value < currentMin {
currentMin = value
} else if value > currentMax {
currentMax = value
}
}
return (currentMin, currentMax)
}