//: Playground - noun: a place where people can play import UIKit // 集合 // Swift中的Set類型被寫爲Set<SomeType>,這裏的SomeType表示Set中容許存儲的類型,和數組不一樣的是,集合沒有等價的簡化形式 var letters = Set<Character>() letters // letters如今含有1個Character類型的值 letters.insert("a") letters // letters如今是一個空的Set, 可是它依然是Set<Character>類型 letters = [] // 下面的例子建立一個稱之爲favoriteGenres的集合來存儲String類型的值 var favoriteGenres:Set<String> = ["Enda","Yuan","H"] // 能夠簡寫爲 var endaName:Set = ["Enda","H","Y"] // 查數量 endaName.count // 判斷是否爲空 if endaName.isEmpty { println("爲空") }else{ println("不爲空") } // Set的insert(_:)方法添加一個新的元素 endaName.insert("Y") // 你能夠經過調用Set的remove(_:)方法去刪除一個元素,若是該值是該Set的一個元素則刪除該元素而且返回被刪除的元素值,否定若是該Set不包含該值,則返回nil。另外,Set中的全部元素能夠經過它的removeAll()方法刪除 if var removeName = endaName.remove("Y"){ println("刪除 \(removeName) 成功") }else{ println("刪除失敗") } // 刪除全部 endaName.removeAll() var tempName:Set = ["E","N","D","A"]; // 使用contains(_:)方法去檢查Set中是否包含一個特定的值 if tempName.contains("E"){ println("包含 e") }else{ println("不包含") } // 遍歷一個 Set // 你能夠在一個for-in循環中遍歷一個Set中的全部值 for temp in tempName{ println(temp); } //Swift的Set類型沒有肯定的順序,爲了按照特定順序來遍歷一個Set中值可使用全局sorted函數,它將根據提供的序列返回一個排序的集合. for temp in sorted(tempName){ println(temp); } // 完成集合操做 let oddDigits:Set=[1,3,5,7,9]; let evenDigits:Set=[0,1,2,4,6,8] let singleDigits:Set = [2,3,5,7]; // 使用union(_:)方法根據兩個集合的值建立一個新的集合 sorted(oddDigits.union(evenDigits)); // 使用subtract(_:)方法根據不在該集合中的值建立一個新的集合 sorted(oddDigits.subtract(singleDigits)); //使用intersect(_:)方法根據兩個集合中都包含的值建立的一個新的集合 sorted(oddDigits.intersect(evenDigits)); // 使用exclusiveOr(_:)方法根據值在一個集合中但不在兩個集合中的值建立一個新的集合 sorted(oddDigits.exclusiveOr(singleDigits)) // 集合比較 // 使用「是否等」運算符(==)來判斷兩個集合是否包含相同的值。 var set1:Set = [1,2]; var set2:Set = [1,2]; var set3:Set = [2,1] if set1 == set2{ println("包含一樣的值"); } // 使用isSubsetOf(_:)方法來判斷一個集合中的值是否也被包含在另一個集合中 set1.isSubsetOf(set3); // 使用isSupersetOf(_:)方法來判斷一個集合中包含的值是另外一個集合中全部的值 set2.isSupersetOf(set1) // 使用isStrictSubsetOf(_:)或者isStrictSupersetOf(_:)方法來判斷一個集合是不是另一個集合的子集合或者父集合而且和特定集合不相等 var set4:Set=[1,2,3,4,5,6]; var set5:Set=[7,8]; set4.isDisjointWith(set5)