
- 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