//: 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)