Swift - 套装


Swift 4集合用于存储相同类型的不同值,但它们不像数组那样具有明确的顺序。

如果元素的排序不是问题,或者想要确保不存在重复值,则可以使用集合而不是数组。(集合只允许不同的值。)

类型必须是可散列的才能存储在集合中。哈希值是一个 Int 值,对于相等的对象来说相等。例如,如果 x == y,则x.hashvalue == y.hashvalue

所有基本的 swift 值默认都是 hashable 类型,并且可以用作设置值。

创建集合

您可以使用以下初始化语法创建某种类型的空集 -

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 可用于检查集合是否为空。

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 上执行基本的集合操作。

以下是执行集合操作的方法 -

  • 路口
  • 联盟
  • 减法
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]