上一章Swift教程请查看:swift数组使用
Swift集合用于存储相同类型的不同值,但它们不像数组那样有明确的顺序。
如果元素的顺序不是问题,或者希望确保没有重复的值,可以使用集合而不是数组。(集合只允许不同的值)
一个类型必须是可散列化的,才能存储在一个集合中,例如,如果x == y,则x.hashvalue = = y.hashvalue,表示它们的散列值相等。
所有基本的swift值在默认情况下都是hashable类型的,可以作为设置值使用。
创建集合
可以使用以下初始化器语法创建某个类型的空集
var someSet = Set<Character>() //可以用set集合的数据类型替换字符。
访问和修改集合
你可以使用它的方法和属性访问或修改一个集合
“count”方法可以用来显示集合中元素的数量。
someSet.count // 打印元素的数量
“insert”方法可用于在集合中插入值。
someSet.insert("c") // 插入一个值到集合分钟
类似地,isEmpty可用于检查set是否为空。
someSet.isEmpty // 根据集合元素返回true或false。
“remove”方法可用于删除集合中的值。
someSet.remove("c") // 删除一个元素,可以使用removeAll()删除所有元素
“contains”方法可用于检查集合中是否存在值。
someSet.contains("c") // 检查set是否包含此值。
遍历一个集合
可以使用for-in循环遍历一个集合:
for items in someSet {
print(someSet)
}
// Swift的集合不是以一种有序的方式,而是以一种有序的方式在集合上迭代使用
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]