- Swift 教程
- Swift - 首页
- Swift - 概述
- Swift - 环境
- Swift - 基本语法
- Swift - 变量
- Swift - 常量
- Swift - 字面量
- Swift - 注释
- Swift 运算符
- Swift - 运算符
- Swift - 算术运算符
- Swift - 比较运算符
- Swift - 逻辑运算符
- Swift - 赋值运算符
- Swift - 位运算符
- Swift - 其他运算符
- Swift 高级运算符
- Swift - 运算符重载
- Swift - 算术溢出运算符
- Swift - 恒等运算符
- Swift - 范围运算符
- Swift 数据类型
- Swift - 数据类型
- Swift - 整数
- Swift - 浮点数
- Swift - Double
- Swift - 布尔值
- Swift - 字符串
- Swift - 字符
- Swift - 类型别名
- Swift - 可选类型
- Swift - 元组
- Swift - 断言和前提条件
- Swift 控制流
- Swift - 决策制定
- Swift - if 语句
- Swift - if...else if...else 语句
- Swift - if-else 语句
- Swift - 嵌套 if 语句
- Swift - switch 语句
- Swift - 循环
- Swift - for in 循环
- Swift - while 循环
- Swift - repeat...while 循环
- Swift - continue 语句
- Swift - break 语句
- Swift - fall through 语句
- Swift 集合
- Swift - 数组
- Swift - 集合
- Swift - 字典
- Swift 函数
- Swift - 函数
- Swift - 嵌套函数
- Swift - 函数重载
- Swift - 递归
- Swift - 高阶函数
- Swift 闭包
- Swift - 闭包
- Swift - 逃逸和非逃逸闭包
- Swift - 自动闭包
- Swift 面向对象编程
- Swift - 枚举
- Swift - 结构体
- Swift - 类
- Swift - 属性
- Swift - 方法
- Swift - 下标
- Swift - 继承
- Swift - 重写
- Swift - 初始化
- Swift - 析构
- Swift 高级
- Swift - ARC 概述
- Swift - 可选链
- Swift - 错误处理
- Swift - 并发
- Swift - 类型转换
- Swift - 嵌套类型
- Swift - 扩展
- Swift - 协议
- Swift - 泛型
- Swift - 访问控制
- Swift - 函数与方法
- Swift - SwiftyJSON
- Swift - 单例类
- Swift 随机数
- Swift 不透明类型和装箱类型
- Swift 有用资源
- Swift - 在线编译
- Swift - 快速指南
- Swift - 有用资源
- Swift - 讨论
Swift - 集合
Swift 的集合用于存储相同类型但彼此不同的值,但它们不像数组那样具有确定的顺序。它运行严格的类型检查,这意味着即使是错误,您也不允许在数组中输入错误的类型。
如果将创建的集合分配给变量,则它始终是可变的,这意味着您可以通过添加、删除或更改其元素来更改它。但是,如果将集合分配给常量,则该集合是不可变的,这意味着您无法向该集合添加新元素。
如果尝试这样做,编译器将抛出错误。Set 使用哈希表来存储元素。默认情况下,所有基本 Swift 值都是可哈希类型,并且可以用作集合值。
在 Swift 中创建集合
要创建特定类型的空集合,我们可以使用Set()初始化器。它显式地接受数据类型。集合可以存储任何数据类型的值,例如浮点数、整数、字符串、字符和双精度数。
var someSet = Set<DataType>()
我们还可以使用数组字面量创建空集合。它是集合的简写表示形式。
var someSet : Set<DataType> = [value] Or var someSet : Set = [value]
在 Swift 中初始化集合
我们可以使用以下方法初始化集合:
使用 insert() 方法
这是一个预定义函数,用于向集合添加新元素。它一次添加一个元素。
语法
以下是insert()函数的语法:
set.insert(x)
示例
import Foundation // Initialize an empty set of String var mySet = Set<String>() // Inserting elements into the set using insert() function mySet.insert("Swift") mySet.insert("C++") mySet.insert("C") mySet.insert("Java") // Displaying set print(mySet)
输出
它将产生以下输出:
["Java", "C", "Swift", "C++"]
使用数组字面量
我们还可以使用数组字面量初始化集合。这是初始化集合的最简单方法。此外,使用此方法,我们可以使用多个值初始化集合。
语法
以下是数组字面量的语法:
var someSet : Set = [value1, value2, value3]
示例
import Foundation // Initialize a set of integers using an array literal var mySet1 : Set = [3, 55, 6, 22] var mySet2 : Set<String> = ["Swift", "Java", "C", "C++"] // Displaying set print("Set 1:", mySet1) print("Set 2:", mySet2)
输出
它将产生以下输出:
Set 1: [3, 6, 55, 22] Set 2: ["C++", "Swift", "C", "Java"]
在 Swift 中迭代集合
迭代集合允许开发人员访问和处理给定集合的各个元素。在 Swift 中,我们可以使用以下方法迭代集合:
使用 for-in 循环
我们可以使用 for-in 循环迭代给定集合的元素。这是访问和顺序处理给定集合的每个元素的最简单、最干净的方法。
示例
import Foundation // Initialize a set of integers using an array literal var mySet1 : Set = [3, 55, 6, 22] print("Elements of Set:") // Iterating through each element of the set // Using for-in for x in mySet1{ print(x) }
输出
它将产生以下输出:
Elements of Set: 22 6 3 55
将 enumerated() 函数与 for-in 循环一起使用
如果我们想要获取所有元素及其对应的索引值,那么我们可以将 enumerated() 函数与 for-in 循环一起使用。
示例
import Foundation // Initialize a set of integer type var mySet1 : Set = [3, 55, 6, 22] print("Elements of Set:") // Iterating through each element of the set // Using for-in loop along with enumerated() function for (index, element) in mySet1.enumerated(){ print("\(element) is at index \(index)") }
输出
它将产生以下输出:
Elements of Set: 22 is at index 0 55 is at index 1 6 is at index 2 3 is at index 3
使用 forEach() 函数
Swift 提供了一个名为 forEach() 的预定义函数来迭代给定的集合。它用于在不手动迭代的情况下对给定集合的各个元素执行操作。
示例
import Foundation // Initialize a set of integer type var mySet1 : Set = [3, 55, 6, 22] print("Elements of Set:") // Iterating over the set using forEach() function mySet1.forEach { num in print(num) }
输出
它将产生以下输出:
Elements of Set: 3 55 6 22
Swift 中的集合运算
集合运算用于组合、比较和操作集合。集合支持五种类型的运算:
- 并集
- 交集
- 减法
- 差集
- 子集
现在让我们详细讨论它们。
并集
并集用于将两个集合的元素组合到一个集合中,而无需重复元素。例如,我们有两个集合 set1 = [2, 4, 5] 和 set2 = [7, 8, 9],因此这两个集合的并集为 [2, 4, 5, 8, 9]。为了对集合执行并集运算,Swift 提供了一个名为 union() 的预定义函数。此方法返回两个集合的并集。
语法
以下是并集的语法:
Set1.union(set2)
示例
import Foundation // Initialize a set of integer type var mySet1 : Set = [3, 55, 6, 22] var mySet2 : Set = [4, 6, 21, 1] // Union of mySet1 and mySet2 var result = mySet1.union(mySet2) print("Resultant set: ", result)
输出
它将产生以下输出:
Resultant set: [55, 1, 3, 21, 22, 4, 6]
交集
交集用于查找两个给定集合中共同存在的元素。例如,我们有两个集合 set1 = [2, 4, 5, 1] 和 set2 = [7, 1, 9, 2],因此这两个集合的交集为 [2, 1]。为了对给定集合执行交集运算,Swift 提供了一个名为 intersection() 的预定义函数。此方法返回两个集合的交集。
语法
以下是交集的语法:
Set1.intersection(set2)
示例
import Foundation // Initialize a set of integer type var mySet1 : Set = [3, 55, 6, 1] var mySet2 : Set = [4, 6, 21, 1] // Intersection of mySet1 and mySet2 var result = mySet1.intersection(mySet2) print("Resultant set: ", result)
输出
它将产生以下输出:
Resultant set: [6, 1]
减法
减法用于查找仅存在于 set 1 中但不存在于 set 2 中的元素。例如,我们有两个集合 set1 = [2, 4, 5, 1] 和 set2 = [7, 1, 9, 3],因此这两个集合的减法为 [2, 1, 4, 5]。为了对给定集合执行减法运算,Swift 提供了一个名为 subtraction() 的预定义函数。此方法返回一个新集合,其中包含两个集合的减法。
语法
以下是减法的语法:
Set1.subtracting(set2)
示例
import Foundation // Initialize a set of integer type var mySet1 : Set = [3, 55, 6, 1] var mySet2 : Set = [4, 6, 21, 1] // Subtract mySet1 from mySet2 var result = mySet2.subtracting(mySet1) print("Resultant set: ", result)
输出
它将产生以下输出:
Resultant set: [4, 21]
差集
差集用于查找两个集合中存在的所有元素,除了公共元素。例如,我们有两个集合 set1 = [2, 4, 5, 1] 和 set2 = [7, 1, 9, 3],因此这两个集合之间的差集为 [4, 5, 7, 9, 3]。为了对给定集合执行差集运算,Swift 提供了一个名为 symmetricDifference() 的预定义函数。此方法返回一个新集合,其中包含两个集合的对称差集。
语法
以下是差集的语法:
Set1.symmetricDifference(set2)
示例
import Foundation // Initialize a set of integer type var mySet1 : Set = [3, 55, 6, 1] var mySet2 : Set = [4, 6, 21, 1] // Find difference between mySet1 and mySet2 var result = mySet1.symmetricDifference(mySet2) print("Resultant set: ", result)
输出
它将产生以下输出:
Resultant set: [4, 55, 3, 21]
子集
如果 set 1 中存在的所有元素都存在于 set 2 中,则一个集合被称为另一个集合的子集。例如,set1 = [2, 4, 5, 1] 是 set2 = [7, 9, 3, 2, 4, 5, 1] 的子集。Swift 提供了一个名为 isSubset() 的预定义方法来检查给定集合是否为另一个集合的子集。如果给定集合是另一个集合的子集,则它将返回 true。否则,它将返回 false。
语法
以下是 isSubset() 的语法:
Set1.isSubset(set2)
示例
import Foundation // Initialize a set of integer type var mySet1 : Set = [6, 1] var mySet2 : Set = [4, 6, 21, 1] // Checking whether mySet1 is the subset of mySet2 // Using isSubset() function var result = mySet1.isSubset(of: mySet2) print("Is mySet1 is the subset of mySet2?:", result)
输出
它将产生以下输出:
Is mySet1 is the subset of mySet2?: true