美文网首页
Swfit4.0 - 数组相关

Swfit4.0 - 数组相关

作者: YaYoYo | 来源:发表于2018-01-18 16:58 被阅读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

    相关文章

      网友评论

          本文标题:Swfit4.0 - 数组相关

          本文链接:https://www.haomeiwen.com/subject/yjjuoxtx.html