Array Programming Guide

前端之家收集整理的这篇文章主要介绍了Array Programming Guide前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Array是Swift针对有序集合的操作类。你可以随机访问Array任何位置上的元素,在Array中你还可以存储相同的元素在不同的位置。本文介绍了在编辑过程中关于Array的常用操作,其结构如下所示。


初始化

@H_301_7@// MARK: 初始化
private func testCreating() {
    @H_301_7@// 空数组
    var array = [Int]()
    array = []
    array = Array<Int>()

    @H_301_7@// 有元素的数值
    array = [Int](count: 3,repeatedValue: 0)
    array = [0,0,0]
    print("\(array)")
}

查询相关信息

@H_301_7@// MARK: - 查询
private func testQuerying() {
    var array = ["阳君","937447974","swift"]
    print("contains:\(array.contains("阳君"))") @H_301_7@// 是否存在这个元素
    print("count:\(array.count)")       @H_301_7@// 有多少个元素
    print("capacity:\(array.capacity)") @H_301_7@// 有多少个元素
    print("startIndex:\(array.startIndex)") @H_301_7@// 首坐标
    print("endIndex:\(array.endIndex)")     @H_301_7@// 尾脚标
    print("first:\(array.first)") @H_301_7@// 首元素
    print("last:\(array.last)")   @H_301_7@// 尾元素
    print("isEmpty:\(array.isEmpty)") @H_301_7@// 是否为空
    @H_301_7@// 获取指定位置的元素
    var temp = (array as NSArray).objectAtIndex(0)
    temp = array[0]
    print("\(temp)")
    @H_301_7@// 获取多个元素
    @H_301_7@// oc获取
    let nRange : NSRange = NSMakeRange(0,3)
    let nIndexSet = NSIndexSet(indexesInRange: nRange)
    let ocArray = (array as NSArray).objectsAtIndexes(nIndexSet)
    print("\(ocArray)")
    @H_301_7@// swift获取
    let range = Range(start: 0,end: 3)
    let sArray = array[range]
    print("\(sArray)")

    @H_301_7@// 遍历
    @H_301_7@// 只获取元素
    for item in array {
        print(item)
    }
    @H_301_7@// 遍历元素和所处的位置
    for (index,value) in array.enumerate() {
        print("\(index):\(value)")
    }
}

查找元素位置

@H_301_7@// MARK: 查找元素位置
private func testFindingObjects() {
    let array = ["阳君","swift"]
    @H_301_7@// 查找元素
    var index = array.indexOf("swift")
    @H_301_7@// closures查找
    index = array.indexOf { (str:String) -> Bool in
        if str == "swift" {
            return true
        }
        return false
    }
    @H_301_7@// 简写
    index = array.indexOf{ str in return str == "swift" }
    index = array.indexOf{ str in str == "swift" }
    index = array.indexOf{ $0 == "swift"}
    print("index:\(index)")
}

增加元素

@H_301_7@// MARK: 增加元素
private func testAdding() {
    var array = [String]()
    @H_301_7@// 增加一个
    array.append("阳君")
    array += ["阳君"]
    @H_301_7@// 增加多个
    array.appendContentsOf(["937447974","swift"])
    array += ["937447974","swift"]
    @H_301_7@// 插入
    array.insert("937447974",atIndex: 0)
    @H_301_7@// 插入多个
    array.insertContentsOf(["937447974","swift"],at: 0)
}

删除元素

@H_301_7@// MARK: 删除元素
private func testRemoving() {
    var array = ["阳君","swift"]
    array = array + array + array + array
    var temp = array.removeFirst() @H_301_7@// 删除首个元素,并返回删除的元素
    array.removeFirst(2) @H_301_7@// 删除前两个元素
    temp = array.removeLast() @H_301_7@// 删除最后两个元素
    temp = array.removeAtIndex(0)@H_301_7@// 删除指定位置的元素
    array.removeRange(Range(start: 0,end: array.endIndex)) @H_301_7@// 删除指定范围的元素
    array.removeAll() @H_301_7@// 删除所有元素
    print("\(temp)")
}

替换元素

@H_301_7@// MARK: 替换元素
private func testReplacing() {
    var array = ["阳君","swift","IOS"]
    array[1] = "YangJ" @H_301_7@// 替换指定位置的元素
    @H_301_7@// 替换指定范围的元素
    array[1...3] = ["a","b"]
    let subRange: Range<Int> = Range(start: 1,end: array.endIndex)
    array.replaceRange(subRange,with: ["c","d","e"])

}

排序

@H_301_7@// MARK: 排序
private func testSorting() {
    var array = ["阳君","IOS"]
    array = array.sort()
    @H_301_7@// 自定义排序
    func backwards(s1: String,_ s2: String) -> Bool {
        return s1 > s2
    }
    array = array.sort(backwards)
    @H_301_7@// 简写
    array = array.sort({ (s1: String,s2: String) -> Bool in
        return s1 > s2
    })
    array = array.sort(<)
}

文件读和写

@H_301_7@// MARK: - 文件读和写
private func testReadingAndWriting() {
    @H_301_7@// Document目录
    let documents:[String] = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomainMask.UserDomainMask,true)
    let docDirPath = documents.first!
    let path = (docDirPath as NSString).stringByAppendingPathComponent("test.plist")
    let url = NSURL(fileURLWithPath: path)
    var array = ["阳君","IOS"]
    @H_301_7@// 写
    (array as NSArray).writeToFile(path,atomically: true)
    (array as NSArray).writeToURL(url,atomically: true)
    @H_301_7@// 读
    array = NSArray(contentsOfFile: path) as! Array
    array = NSArray(contentsOfURL: url) as! Array
}

其他

参考资料

Array Structure Reference
The Swift Programming Language (Swift 2.1)
NSArray Class Reference

文档修改记录

时间 描述
2015-10-24 根据Swift2.1 Array的API总结

版权所有:http://blog.csdn.net/y550918116j

猜你在找的Swift相关文章