美文网首页Swift知识点梳理
Swift集合(Dictionary)

Swift集合(Dictionary)

作者: smile_frank | 来源:发表于2021-06-07 11:43 被阅读0次

    Dictionary

    字典储存无序的相关联的同一类型的键和同一类型的值
    字典的key必须是可哈希的

    字典的初始化方式

    var dict1 = Dictionary<String,Int>()
    var dict2 = [String : Int]()
    var dict3 : Dictionary<String,Int> = [:]
    
    //字面量创建字典
    let dict = ["wang":20,"lisi":30,"zhangsan":32]
    
    //可以用Count的只读属性找出dictionary拥有多少元素
    //使用isEmpty判断dictionary是否为空
    

    字典遍历

    //forin循环
    //可以通过访问字典法的keys和values属性来取可遍历的字典的键和值的集合
    //swift的字典是无序的。要以特定的顺序遍历字典的键或者值,可以使用键或者值的Sorted()方法
    let dic = ["zhangsan":30,"lisi":20,"wangwu":23,"anday":30]
    for (key,value) in dic {
        print("\(key)=\(value)")
    }
    
    //也可以使用enumerate()方法来进行字典遍历,返回的是字典的索引及 (key, value) 对
    
    var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
    for (key, value) in someDict.enumerated() {
        print("字典 key \(key) -  字典 (key, value) 对 \(value)")
    }
    
    
    

    字典修改

    //可以使用 updateValue(forKey:) 增加或更新字典的内容。如果 key 不存在,则添加值,如果存在则修改 key 对应的值。updateValue(_:forKey:)方法返回Optional值
    var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
    var oldVal = someDict.updateValue("One 新的值", forKey: 1)
    
    //也可以通过指定的 key 来修改字典的值
    someDict[1] = "One 新的值"
    

    合并两个字典

    //合并两个字典
    var dictionary = ["a":1,"b":2]
    var dictionary2 = ["a":3,"c":3]
    //如果重复key,以前者为主合并
    dictionary.merge(dictionary2) { (a, b) -> Int in
        a
    }
    print(dictionary)
    
    //如果重复key,以后者为主合并
    dictionary.merge(dictionary2) { (_, new) -> Int in
        new
    }
    print(dictionary)
    

    字典移除Key-Value

    var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
    //可以使用 removeValueForKey() 方法来移除字典 key-value 对。如果 key 存在该方法返回移除的值,如果不存在返回 nil 
    var removedValue = someDict.removeValue(forKey: 2)
    
    //也可以通过指定键的值为 nil 来移除 key-value(键-值)对
    someDict[2] = nil
    

    字典转换为数组

    var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
    
    let dictKeys = [Int](someDict.keys)
    let dictValues = [String](someDict.values)
    

    相关文章

      网友评论

        本文标题:Swift集合(Dictionary)

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