Swift 集合
Swift 4中, 集合 用于存储相同类型的不同值,但它们不像数组那样具有明确的顺序。
如果元素的顺序不重要或者您希望确保没有重复的值,可以使用集合而不是数组。(集合只允许不同的值。)
要将类型存储在集合中,该类型必须是可哈希的。哈希值是一个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可以用来检查集合是否为空。
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循环遍历Set集合 –
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集合执行基本的集合操作。
以下是执行集合操作的方法:
- 交集
- 并集
- 差集
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]