Swift - 集合

  • 简述

    Swift 4 sets 用于存储相同类型的不同值,但它们没有像数组那样确定的顺序。
    如果元素的顺序不是问题,或者如果您想确保没有重复值,您可以使用集合而不是数组。(集合只允许不同的值。)
    类型必须是可散列的才能存储在集合中。哈希值是一个 Int 值,对于相等的对象是相等的。例如,如果 x == y,则x.hashvalue == y.hashvalue.
    默认情况下,所有基本的 swift 值都是可散列的类型,可以用作设置值。
  • 创建集合

    您可以使用以下初始化语法创建特定类型的空集 -
    
    var someSet = Set<Character>()     //Character can be replaced by data type of set.
    
  • 访问和修改集合

    您可以使用其方法和属性访问或修改集合 -
    “count”方法可用于显示集合中元素的数量。
    
    someSet.count        // prints the number of elements
    
    “insert”方法可用于在集合中插入值。
    
    someSet.insert("c")   // adds the element to Set.
    
    同样, isEmpty 可用于检查 set 是否为空。
    
    someSet.isEmpty       // returns true or false depending on the set Elements.
    
    “remove”方法可用于删除集合中的值。
    
    someSet.remove("c")     // removes a element , removeAll() can be used to remove all elements
    
    “contains”方法可用于检查集合中值的存在。
    
    someSet.contains("c")     // to check if set contains this value.
    
  • 迭代一个集合

    您可以使用 for-in 循环遍历一个集合 -
    
    for items in someSet {
       print(someSet)
    }
    //Swift sets are not in an ordered way, to iterate over a set in ordered way use
    for items in someSet.sorted() {
       print(someSet)
    }  
    
  • 执行集合操作

    您可以在 swift Sets 上执行基本的 set 操作。
    以下是执行集合操作的方法 -
    • Intersection
    • Union
    • subtracting
    
    let evens: Set = [10,12,14,16,18]
    let odds: Set = [5,7,9,11,13]
    let primes = [2,3,5,7]
    odds.union(evens).sorted()
    // [5,7,9,10,11,12,13,14,16,18]
    odds.intersection(evens).sorted()
    //[]
    odds.subtracting(primes).sorted()
    //[9, 11, 13]