• Swift_数组详解


    Swift_数组详解


    点击查看源码

    初始化

    //初始化
    fileprivate func testInit() {
        //空数组
        var  array = [Int]()
        print(array)
        array = []
        print(array)
        array = Array<Int>()
        print(array)
        
        //有数值的数组
        array = [Int](repeating: 0, count: 3)
        print(array)
        array = [0, 0, 0]
        print(array)
        
        /* print
         
         []
         []
         []
         [0, 0, 0]
         [0, 0, 0]
         
         */
    }
    

    查询相关信息

    //查询相关信息
    fileprivate func testQuerying() {
        var array = ["XuBaoAiChiYu", "QQ", "1045214799"]
        print("contains:(array.contains("XuBaoAiChiYu"))") //是否存在这个元素
        print("count:(array.count)")       //有多少个元素
        print("capacity:(array.capacity)") //有多少个元素
        print("startIndex:(array.startIndex)") //首坐标
        print("endIndex:(array.endIndex)")     //尾脚标
        print("first:(array.first)") //首元素
        print("last:(array.last)")   //尾元素
        print("isEmpty:(array.isEmpty)") //是否为空
        
        //获取指定位置的元素
        var temp = (array as NSArray).object(at: 0)
        temp = array[0]
        print("(temp)")
        
        //获取多个元素
        let nRange : NSRange = NSMakeRange(0, 3)
        let nIndexSet = IndexSet(integersIn: nRange.toRange() ?? 0..<0)
        let ocArray = (array as NSArray).objects(at: nIndexSet)
        print("(ocArray)")
        
        let range = (0 ..< 3)
        let sArray = array[range]
        print("(sArray)")
        
        //遍历
        //只获取元素
        for item in array {
            print(item)
        }
        //遍历元素和所处的位置
        for (index, value) in array.enumerated() {
            print("(index):(value)")
        }
        
        /*  print
         
         contains:true
         count:3
         capacity:3
         startIndex:0
         endIndex:3
         first:Optional("XuBaoAiChiYu")
         last:Optional("1045214799")
         isEmpty:false
         XuBaoAiChiYu
         [XuBaoAiChiYu, QQ, 1045214799]
         ["XuBaoAiChiYu", "QQ", "1045214799"]
         XuBaoAiChiYu
         QQ
         1045214799
         0:XuBaoAiChiYu
         1:QQ
         2:1045214799
         
         */
    }
    

    查找元素位置

    //查找元素位置
    fileprivate func testFindingObjects() {
        
        let array = ["XuBaoAiChiYu", "QQ", "1045214799"]
        
        // 查找元素
        var index = array.index(of: "QQ")
        print(index!)
        
        // closures查找
        index = array.index { (str:String) -> Bool in
            if str == "QQ" {
                return true
            }
            return false
        }
        print(index!)
        
        // 简写
        index = array.index{ str in return str == "QQ" }
        print("index:(index)")
        index = array.index{ str in str == "QQ" }
        print("index:(index)")
        index = array.index{ $0 == "QQ"}
        print("index:(index)")
        
        /* print
         
         1
         1
         index:Optional(1)
         index:Optional(1)
         index:Optional(1)
         
         */
    }
    

    增加元素

    //增加元素
    fileprivate func testAdding() {
        
        var array = [String]()
        print(array)
        
        //增加一个
        array.append("XuBaoAiChiYu")
        print(array)
        array += ["XuBaoAiChiYu"]
        print(array)
        
        //增加多个
        array.append(contentsOf: ["QQ", "1045214799"])
        print(array)
        array += ["QQ", "1045214799"]
        print(array)
        
        //插入
        array.insert("1045214799", at: 0)
        print(array)
        //插入多个
        array.insert(contentsOf: ["1045214799", "QQ"], at: 0)
        print(array)
        
        /* print
         
         []
         ["XuBaoAiChiYu"]
         ["XuBaoAiChiYu", "XuBaoAiChiYu"]
         ["XuBaoAiChiYu", "XuBaoAiChiYu", "QQ", "1045214799"]
         ["XuBaoAiChiYu", "XuBaoAiChiYu", "QQ", "1045214799", "QQ", "1045214799"]
         ["1045214799", "XuBaoAiChiYu", "XuBaoAiChiYu", "QQ", "1045214799", "QQ", "1045214799"]
         ["1045214799", "QQ", "1045214799", "XuBaoAiChiYu", "XuBaoAiChiYu", "QQ", "1045214799", "QQ", "1045214799"]
         
         */
    }
    

    删除元素

    //删除元素
    fileprivate func testRemoving() {
        var array = ["XuBaoAiChiYu", "QQ", "1045214799"]
        print(array)
        
        array = array + array + array + array
        print(array)
        
        var temp = array.removeFirst() //删除首个元素 并返回删除的元素
        print(array)
        print(temp)
        
        array.removeFirst(2) //删除前两个元素
        print(array)
        
        temp = array.removeLast() //删除最后一个元素
        print(array)
        
        temp = array.remove(at: 0) //删除指定位置的元素
        print(array)
        
        array.removeSubrange((array.indices.suffix(from: 0))) //删除指定范围的元素
        print(array)
        
        array.removeAll() //删除所有元素
        print(array)
        
        /* print
         
         ["XuBaoAiChiYu", "QQ", "1045214799"]
         ["XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799"]
         ["QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799"]
         XuBaoAiChiYu
         ["XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799"]
         ["XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ"]
         ["QQ", "1045214799", "XuBaoAiChiYu", "QQ", "1045214799", "XuBaoAiChiYu", "QQ"]
         []
         []
         
         */
    }
    

    替换元素

    //替换元素
    fileprivate func testReplacing() {
        
        var array = ["XuBaoAiChiYu", "QQ", "1045214799"]
        print(array)
        
        array[1] = "iOS" // 替换指定位置的元素
        print(array)
        
        // 替换指定范围的元素
        array[0..<3] = ["a", "b", "c"]
        print(array)
        
        let subRange: CountableRange<Int> = (array.indices.suffix(from: 1))
        array.replaceSubrange(subRange, with: ["c","d","e"])
        print(array)
        
        /*  print
         
         ["XuBaoAiChiYu", "QQ", "1045214799"]
         ["XuBaoAiChiYu", "iOS", "1045214799"]
         ["a", "b", "c"]
         ["a", "c", "d", "e"]
         
         */
        
    }
    

    排序

    //排序
    fileprivate func testSorting() {
        var array = ["XuBaoAiChiYu", "QQ", "1045214799"]
        print(array)
        
        array = array.sorted()
        print(array)
        
        //自定义排序
        func backwards(_ s1: String, _ s2: String) -> Bool {
            return s1 > s2
        }
        array = array.sorted(by: backwards)
        print(array)
        
        //简写
        array = array.sorted(by: { (s1: String, s2: String) -> Bool in
            return s1 > s2
        })
        print(array)
        
        array = array.sorted(by: <)
        print(array)
        
        /*  print
         
         ["XuBaoAiChiYu", "QQ", "1045214799"]
         ["1045214799", "QQ", "XuBaoAiChiYu"]
         ["XuBaoAiChiYu", "QQ", "1045214799"]
         ["XuBaoAiChiYu", "QQ", "1045214799"]
         ["1045214799", "QQ", "XuBaoAiChiYu"]
         
         */
    }
    

    文件读和写

    //文件读和写
    fileprivate func testReadingAndWriting() {
        
        //Document目录
        let documents:[String] = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
        let docDirPath = documents.first!
        let path = (docDirPath as NSString).appendingPathComponent("test.plist")
        let url = URL(fileURLWithPath: path)
        
        var array = ["XuBaoAiChiYu", "QQ", "1045214799"]
        
        //写
        (array as NSArray).write(toFile: path, atomically: true)
        (array as NSArray).write(to: url, atomically: true)
        
        //读
        array = NSArray(contentsOfFile: path) as! Array
        print(array)
        
        array = NSArray(contentsOf: url) as! Array
        print(array)
        
        /*  print
         
         ["XuBaoAiChiYu", "QQ", "1045214799"]
         ["XuBaoAiChiYu", "QQ", "1045214799"]
         
         */
    }
    
  • 相关阅读:
    正则表达式
    mvc3路由设置
    MVC 过滤器
    mvc3之自定义类实现路由配置和URL的生成
    Mvc View
    定义一个底层的泛型
    一个关于字典查找引发的思考——BinarySearch
    Linq学习之旅——Linq to Objects之延期执行方法(上篇)
    Linq学习之旅——Linq to Objects之立即执行方法(下篇)
    Linq学习之旅——Linq to Objects之延期执行方法(下篇)
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/6483149.html
Copyright © 2020-2023  润新知