菜鸡学Swift2.0 9.集合

集合 Set 是一个无序不重复的数据集

1. 集合的显式声明

var emptySet:Set = []
var emptySet2 = Set()

2. 集合的操作

var emptySet3:Set = ["a","b"]
// 统计集合内所有的值数量
emptySet3.count
// 判断集合是否为空值
emptySet3.isEmpty
// .contains( ) 方法 匹配集合中是否有这个值
emptySet3.contains("a")
// .first 获取集合内"第一个"值,因为集合是无序的所有这个值是随机的
emptySet3.first
// 遍历集合内所有的值
for i in emptySet3 {
    print(i)
}
// .insert( )方法 添加一个值
emptySet3.insert("c")
// .remove( ) 方法 删除一个值
emptySet3.remove("a")
// .removeAll ( ) 方法 删除所有值
emptySet3.removeAll( )

3. 交集

union 不改变集合
unionInplace 改变结合
var ua:Set = ["a","b","c"]
var ub:Set = ["A","B","C"]

// 并集后ua的值并没有被改变
ua.union(ub) //{"b", "B", "a", "A", "C", "c"}
ua //{"b", "a", "c"}

// 并集后的值赋给了ua
ua.unionInPlace(ub) //{"b", "B", "a", "A", "C", "c"}
ua //{"b", "B", "a", "A", "C", "c"}

4. 并集

intersect 不改变集合
intersectInPlace 改变结合

var ua:Set = ["a","b","c"]
var ub:Set = ["A","B","c"]
//并集找出相同的值 并集后并没有改变ua
ua.intersect(ub) // {"c"}
ua // {"b", "a", "c"}
//并集找出相同的值 并把这个并集后的值赋值给ua
ua.intersectInPlace(ub) // {"c"}
ua // {"c"}

5. 减法

subtract 不改变集合
subtractInPlace 改变集合
var ua:Set = ["a","b","c"]
var ub:Set = ["A","B","c"]

// subtract 左边减去右边 不改变左边的值
ua.subtract(ub) // {"b", "a"}
ua // {"b", "a", "c"}

//  subtractInPlace 左边减去右边 改变左边的值
ua.subtractInPlace(ub)  // {"b", "a"}
ua // {"b", "a"}

6. 亦或

exclusiveOr 不改变集合
exclusiveOrInPlace 改变集合
var ua:Set = ["a","b","c"]
var ub:Set = ["A","B","c"]

// 找出左右都包含的值减去 不改变ua值
ua.exclusiveOr(ub) // {"b", "B", "a", "A"}
ua // {"b", "a", "c"}

//  找出左右都包含的值减去 改变ua值
ua.exclusiveOrInPlace(ub) // {"b", "B", "a", "A"}
ua // {"b", "B", "a", "A"}

7. 子集

isSubsetOf 判断 B是否为A的子集
isStrictSubsetOf 判断B是否为A的真子集
isSupersetOf 判断A是否为B的超集
isStrictSupersetOf 判断A是否为B的真超集
var ua:Set = ["a","b","c"]
var ub:Set = ["c"]

// 判断ub是否是ua的子集
ub.isSubsetOf(ua) // true
ub.isStrictSubsetOf(ua) // true
// 判断ua是否是ub的超级
ua.isSupersetOf(ub) // true
ua.isStrictSupersetOf(ub) // true

8. 相离

isDisjointWith 判断A和B是否没有相交的集合 即"相离"
var ua:Set = ["a","b","c"]
var ub:Set = ["A","B","C"]

ua.isDisjointWith(ub)

你可能感兴趣的:(菜鸡学Swift2.0 9.集合)