Swif哈希集合

Swift 4集合是用於存儲相同類型的不同值,但它們沒有像數組那樣的有明確排序順序。

如果不需要元素排序,或者需要沒有重複值(唯一值),則可以使用集合而不是數組(集合只允許不同的值)。

類型必須是可散列類型並且是可以比較的,才能存儲在一個集合中。哈希值是對象的Int值相等。例如,如果兩個對象相等:x == y,則x.hashvalue == y.hashvalue

默認情況下,所有基本swift值都是可散列類型,可以用作集合值。

創建集

使用以下初始化語法創建某個類型的空集合 -

var someSet = Set<Character>() // 字符可以由集合的數據類型替換。

訪問和修改集

可以使用其方法和屬性訪問或修改集合 -

count方法可用於顯示集合中的元素數量。

someSet.count  // prints the number of elements

insert方法可用於在set集合中插入值。

someSet.insert("c") // adds the element to Set.

同樣,isEmpty可用於檢查set集合是否爲空。

someSet.isEmpty // returns true or false depending on the set Elements.

remove方法可用於刪除set集合中的值。

someSet.remove("c") // removes a element , removeAll() can be used to remove all elements

contains方法可用於檢查集合中是否存在值。

someSet.contains("c")     // to check if set contains this value.

迭代一個集合

使用for-in循環遍歷集合 -

for items in someSet {
   print(someSet)
}

//Swift sets are not in an ordered way, to iterate over a set in ordered way use

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]