📅  最后修改于: 2020-12-25 04:29:01             🧑  作者: Mango
Swift 4集用于存储相同类型的不同值,但它们不像数组那样具有确定的顺序。
如果元素的顺序不是问题,或者要确保没有重复的值,则可以使用集合而不是数组。 (集合仅允许不同的值。)
类型必须是可哈希的,才能存储在集合中。哈希值是一个Int值,等于相等的对象。例如,如果x == y,则x.hashvalue == y.hashvalue 。
默认情况下,所有基本swift值均为可哈希类型,可用作设置值。
您可以使用以下初始化语法创建一个特定类型的空集-
var someSet = Set() //Character can be replaced by data type of set.
您可以使用其方法和属性访问或修改集-
“计数”方法可用于显示集合中的元素数。
someSet.count // prints the number of elements
“插入”方法可用于在集合中插入值。
someSet.insert("c") // adds the element to Set.
同样,isEmpty可用于检查set是否为空。
someSet.isEmpty // returns true or false depending on the set Elements.
“删除”方法可用于删除集合中的值。
someSet.remove("c") // removes a element , removeAll() can be used to remove all elements
“包含”方法可用于检查集合中值的存在。
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)
}
您可以对快速集合执行基本集合操作。
以下是执行设置操作的方法-
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]