這篇教程屬於 Swift 系列

集合(Sets)用於創建不重複項目的集合。

雖然數組可以包含多個相同項目,但集合中只包含唯一的項目。

你可以用以下方式聲明一個包含整數值的集合:

let set: Set<Int> = [1, 2, 3]

或者你可以用數組初始化集合:

let set = Set([1, 2, 3])

使用 insert() 方法將項目添加到集合中:

var set = Set([1, 2, 3])
set.insert(17)

與數組不同,集合中並沒有順序或位置。項目的擷取和插入是隨機的。

將集合的內容按照順序打印的方法是將其轉換為數組,並使用 sorted() 方法:

var set = Set([2, 1, 3])
let orderedList = set.sorted()

要檢查集合是否包含一個元素,可以使用 contains(_:) 方法:

var set = Set([1, 2, 3])
set.contains(2) // true

要獲取集合中的項目數量,使用 count 屬性:

let set = Set([1, 2, 3])
set.count // 3

如果集合為空,其 isEmpty 屬性為 true

let set = Set([1, 2, 3])
set.isEmpty // false

要從集合中刪除一個項目,可以使用 remove(_:) 方法,並傳入要刪除的元素的值:

var set = Set([1, 2, 3])
set.remove(1)
// 現在 set 為 [2, 3]

要從集合中刪除所有項目,可以使用 removeAll() 方法:

set.removeAll()

和數組一樣,集合是按值傳遞的,這意味著如果你將它傳遞給一個函數,或者從函數中返回它,則集合會被複製。

集合非常適合執行集合運算,如交集、聯集、差集等。

以下方法對此非常有幫助:

  • intersection(_:)
  • symmetricDifference(_:)
  • union(_:)
  • subtracting(_:)
  • isSubset(of:)
  • isSuperset(of:)
  • isStrictSubset(of:)
  • isStrictSuperset(of:)
  • isDisjoint(with:)

集合是一種集合類型,可以在循環中進行迭代。