Swfit4.0 - 数组相关

纯属手打 自己摸索 😆如果有错误 欢迎指出 希望对你们有用

/**************** 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)
}
双击666
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。