集合是唯一数据的集合。也就是说,集合的元素不能重复。例如,
假设我们要存储**学生 ID** 的信息。由于**学生 ID** 不能重复,我们可以使用集合。

在 Swift 中创建集合
以下是我们如何在 Swift 中创建集合。
// create a set of integer type
var studentID : Set = [112, 114, 116, 118, 115]
print("Student ID: \(studentID)")
输出
Student ID: [112, 114, 115, 118, 116]
在上面的示例中,请注意该语句,
var studentID : Set = [112, 114, 115, 118, 116]
在这里,Set
关键字指定 studentID 是一个集合。由于集合的所有元素都是整数,因此 studentID 是 Int
类型的集合。
但是,我们也可以将集合的类型指定为
var studentID : Set<Int> = [112, 114, 115, 116, 118]
注意:运行此代码时,输出顺序可能不同。这是因为集合没有特定的顺序。
向集合添加元素
我们使用 insert()
方法将指定元素添加到集合中。例如,
var numbers: Set = [21, 34, 54, 12]
print("Initial Set: \(numbers)")
// using insert method
numbers.insert(32)
print("Updated Set: \(numbers)")
输出
Initial Set: [54, 21, 34, 12] Updated Set: [54, 21, 34, 12, 32]
在上面的示例中,我们创建了一个名为 employeeID 的集合。请注意这行:
numbers.insert(32)
在这里,insert()
将 **32** 添加到我们的集合中。
从集合中删除元素
我们使用 remove()
方法从集合中删除指定元素。例如,
var languages: Set = ["Swift", "Java", "Python"]
print("Initial Set: \(languages)")
// remove Java from a set
let removedValue = languages.remove("Java")
print("Set after remove(): \(languages)")
输出
Initial Set: ["Python", "Java", "Swift"] Set after remove(): ["Python", "Swift"]
同样,我们也可以使用
removeFirst()
- 删除集合的第一个元素removeAll()
- 删除集合的所有元素
其他集合方法
方法 | 描述 |
---|---|
sorted() |
对集合元素进行排序 |
forEach() |
对每个元素执行指定的操作 |
contains() |
在集合中搜索指定元素 |
randomElement() |
从集合返回一个随机元素 |
firstIndex() |
返回给定元素的索引 |
遍历集合
我们可以使用 for 循环 遍历集合的元素。例如,
let fruits: Set = ["Apple", "Peach", "Mango"]
print("Fruits:")
// for loop to access each fruits
for fruit in fruits {
print(fruit)
}
输出
Fruits: Peach Mango Apple
查找集合中的元素数量
我们可以使用 count
属性来查找集合中存在的元素数量。例如,
let evenNumbers = [2,4,6,8]
print("Set: \(evenNumbers)")
// find number of elements
print("Total Elements: \(evenNumbers.count)")
输出
Set: [2, 6, 8, 4] Total Elements: 4
Swift 集合运算
Swift 集合提供了不同的内置方法来执行数学集合运算,例如并集、交集、差集和对称差集。
1. 两个集合的并集
两个集合 **A** 和 **B** 的并集包括集合 **A** 和 **B** 的所有元素。

我们使用 union()
方法执行集合并集运算。例如,
// first set
let setA: Set = [1, 3, 5]
print("Set A: ", setA)
// second set
let setB: Set = [0, 2, 4]
print("Set B: ", setB)
// perform union operation
print("Union: ", setA.union(setB))
输出
Set A: [1, 5, 3] Set B: [0, 2, 4] Union: [0, 5, 2, 4, 1, 3]
注意:setA.union(setB)
等同于 A ⋃ B
集合运算。
2. 两个集合的交集
两个集合 **A** 和 **B** 的交集包括集合 **A** 和 **B** 之间的共同元素。

我们使用 intersection()
方法执行两个集合之间的交集运算。例如,
// first set
let setA: Set = [1, 3, 5]
print("Set A: ", setA)
// second set
let setB: Set = [1, 2, 3]
print("Set B: ", setB)
// perform intersection operation
print("Intersection: ", setA.intersection(setB))
输出
Set A: [5, 3, 1] Set B: [1, 2, 3] Intersection: [3, 1]
注意:setA.intersection(setB)
等同于 A ⋂ B
集合运算。
3. 两个集合的差集
两个集合 **A** 和 **B** 的差集包括集合 **A** 中不存在于集合 **B** 的元素。

我们使用 subtracting()
方法执行两个集合之间的差集运算。例如,
// first set
let setA: Set = [2, 3, 5]
print("Set A: ", setA)
// second set
let setB: Set = [1, 2, 6]
print("Set B: ", setB)
// perform subtraction operation
print("Subtraction: ", setA.subtracting(setB))
输出
Set A: [3, 5, 2] Set B: [1, 6, 2] Subtraction: [3, 5]
注意:setA.substracting(setB)
等同于 A - B
集合运算。
4. 两个集合的对称差集
两个集合 **A** 和 **B** 的对称差集包括 **A** 和 **B** 的所有元素,但不包括共同元素。

我们使用 symmetricDifference()
方法执行两个集合之间的对称差集运算。例如,
// first set
let setA: Set = [2, 3, 5]
print("Set A: ", setA)
// second set
let setB: Set = [1, 2, 6]
print("Set B: ", setB)
// perform symmetric difference operation
print("Symmetric Difference: ", setA.symmetricDifference(setB))
输出
Set A: [5, 2, 3] Set B: [2, 6, 1] Symmetric Difference: [1, 6, 3, 5]
5. 检查集合的子集
如果集合 **B** 的所有元素也存在于集合 **A** 中,则称集合 **B** 是集合 **A** 的子集。

我们使用 Subset()
方法来检查一个集合是否是另一个集合的子集。例如,
// first set
let setA: Set = [1, 2, 3, 5, 4]
print("Set A: ", setA)
// second set
let setB: Set = [1, 2]
print("Set B: ", setB)
// check if setB is subset of setA or not
print("Subset: ", setB.isSubset(of: setA))
输出
Set A: [3, 1, 2, 5] Set B: [1, 2] Subset: true
检查两个集合是否相等
我们可以使用 ==
运算符来检查两个集合是否相等。例如,
let setA: Set = [1, 3, 5]
let setB: Set = [3, 5, 1]
if setA == setB {
print("Set A and Set B are equal")
}
else {
print("Set A and Set B are different")
}
输出
Set A and Set B are equal
在上面的示例中,setA
和 setB
具有相同的元素,因此条件
if setA == setB
求值为 true
。因此,执行了 if
语句中的 print("Set A and Set B are same")
语句。
创建空集合
在 Swift 中,我们也可以创建空集合。例如,
var emptySet = Set<Int>()
print("Set:", emptySet)
输出
Set: [ ]
需要注意的是,在创建空集合时,我们必须在 <>
中指定数据类型,后跟一个初始化器语法 ()
。
这里,<Int>()
指定空集合只能存储整数数据元素。