集合

作者: ZLWorm | 来源:发表于2015-12-27 00:07 被阅读0次

    数组

    • 数组使用[]定义,这一点与OC相同
    let numbers = [1,2,3,4,5,6,7,8,9]
    
    • 遍历
    //第一种
    for(var i = 0; i < array.count; i++){
        print(numbers)
    }
    //第二种  只关心遍历的值    
    for value in numbers{
        print(value)
    } 
    //第三种  关心遍历的脚标以及值   
    for (index,value) in numbers.enumerate{
        print("当前遍历的 index 是 \(index),值是\(value)")
    }
    
    • 通过下标获取指定项的内容
    let num1 = numbers[0]
    let num2 = numbers[1]
    
    • 可变&不可变
      • let 定义不可变数组
      • var 定义可变数组
    let array = ["zhangsan", "lisi"]
    //: 不能向不可变数组中追加内容
    //array.append("wangwu")
    var array1 = ["zhangsan", "lisi"]
    
    //: 向可变数组中追加内容
    array1.append("wangwu")
    
    • 数组的类型
      • 如果初始化时,所有内容类型一致,则数组中保存的是该类型的内容
      • 如果初始化时,所有内容类型不一致,则数组中保存的是NSObject
    //: array1 仅允许追加 String 类型的值
    //array1.append(18)
    
    var array2 = ["zhangsan", 18]
    //: 在 Swift 中,数字可以直接添加到集合,不需要再转换成 `NSNumber`
    array2.append(100)
    //: 在 Swift 中,如果将结构体对象添加到集合,仍然需要转换成 `NSValue`
    array2.append(NSValue(CGPoint: CGPoint(x: 10, y: 10)))
    
    • 数组的定义和实例化
      • 使用:可以只定义数组的类型
      • 实例化之前不允许添加值
      • 使用[类型]()可以实例化一个空数组
    var array3: [String]
    //: 实例化之前不允许添加值
    //array3.append("laowang")
    //: 实例化一个空的数组
    array3 = [String]()
    array3.append("laowang")
    
    • 数组的合并
      • 必须是相同类型的数组才能够合并
      • 开发中,通常数组中保存的对象类型都是一样的
    array3 += array1
    
    //: 必须是相同类型的数组才能够合并,以下两句代码都是不允许的
    //array3 += array2
    //array2 += array3
    
    • 数组的删除
    //: 删除指定位置的元素
    array3.removeAtIndex(3)
    //: 清空数组
    array3.removeAll()
    
    • 内存分配
      • 如果向数组中追加元素,超过了容量,系统会增加合适的容量
    var list = [Int]()
    
    for i in 0...16 {
        list.append(i)
        print("添加 \(i) 容量 \(list.capacity)")
    }
    

    字典

    • 定义
      • 同样使用[]定义字典
      • let 不可变字典
      • var 可变字典
      • [String:NSObject]是最常用的字典类型
    //`[String:NSObject]`是最常用的字典类型
    var dict = ["name":"zhangsan","age":18];
    
    • 赋值
      • 赋值直接使用 dict[key] = value 格式
      • 如果 key 不存在,会设置新值
      • 如果 key 存在 ,则会覆盖现有的值
    //如果 key 不存在,会设置新值      
    dict["title"] = boss  
    //如果 key 存在 ,则会覆盖现有的值
    dict["name"] = "lisi"
    print(dict)
    
    • 遍历
      • k,v可以随便写
      • 前面的是key
      • 后面的是value
    for (k,v) in dict {
        print("\(k)~~~\(v)")
    }
    
    • 合并字典
      • 如果key 不存在,会建立新值,否则,会覆盖现有值
    //合并字典 
    var dict1 = [String:NSObject]()
    dict1["nickname"]= "大老虎"
    dict1["age"] = 44
    //如果key 不存在,会建立新值,否则,会覆盖现有值
    for (k,v) in dict1 {
        dict[k] = v
    }
    print(dict)
    
    • 移除对应的键值对
    //赋值为nil
    dict["name"] = nil
    print(dict)
    

    相关文章

      网友评论

          本文标题:集合

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