美文网首页swift
swift——Set

swift——Set

作者: 阿凡提说AI | 来源:发表于2017-02-25 21:37 被阅读21次

    Set用来存储相同类型并且没有确定顺序的值。与数组不同的是,Set里的元素是无序的,并且每个元素都不能重复。

    Set<Element>     // Element表示Set中允许存储的类型
    

    创建Set

    1创建空Set

    var letters = Set<Character>()
    

    2用数组字面量创建Set

    var favoriteColors:Set<String> = ["红色",“绿色”,蓝色]
    

    由于从数组字面量不能推断出Set类型,所以Set类型必须显式声明。但是,如果数组字面量的所有元素类型相同,则Set里元素的类型无需显式写出,可由系统自动判断。

    var favoriteColors:Set = ["红色",“绿色”,“蓝色”]
    

    访问和修改Set

    1.获取Set中元素的数量。

    var favoriteColors:Set = ["红色",“绿色”,“蓝色”]
    let count = favoriteColors.count   // 获取元素的个数
    print("我喜欢的颜色有\(count)种")
    

    2.Set的增删查操作

    var favoriteColors:Set = ["红色",“绿色”,“蓝色”]
    // 1.添加
    favoriteColors.insert("黄色")
    print(favoriteColors)
    // 2.删除
    if let removeGreen = favoriteColors.remove("绿色"){
          print("我已经不喜欢\(removeGreen)了")
    }else{
          print("我从来没喜欢过这个颜色")
    }
    // 3.检查是否包含某元素
    if favoriteColors.contains("黑色"){
            print("好吧,我还喜欢这个颜色")
    }else{
            print("黑色太沉重了,不是我的菜")
    }
    // 4.删除所有元素
    favoriteColors.removeAll()
    print(favoriteColors)
    

    3.遍历Set

    import UIKit
    var favoriteColors:Set = ["red",“white”,“black”]
    print("-----无序Set")
    for color in favoriteColors{
            print(color)
    }
    print("-----有序Set")
    for color in favoriteColors.sorted(){
            print(color)
    }
    

    Set之间的操作

    var a:Set<Int> = [1,2,3,4,5]
    let b:Set<Int> = [4,5,6,7,8]
    // 1.两个集合的交集
    a.intersection(b).sorted()
    // 2.两个集合中不同的元素组成的集合
    a.symmetricDifference(b).sorted()
    // 3.两个结合的并集
    a.union(b).sorted
    // 4.a集合去掉两个集合的交集
    a.subtracting(b).sorted
    

    Set之间的关系

    let a:Set<Int> = [1,2,3,4,5];
    let b:Set<Int> = [1,2]
    let c:Set<Int> = [4,5,6,7,8]
    let d:Set<Int> = [1,2]
    print("b是a的子集",b.isSubset(of:a))
    print("a是b的父集",a.isSuperset(of:b))
    print("b和c没有交集",b.isDisjoint(with:c))
    print("b和d相等",b==d)
    

    相关文章

      网友评论

        本文标题:swift——Set

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