合集Set

1. 基本合集操作

image.png
/*
使用 intersection(_:)方法来创建一个只包含两个合集共有值的新合集;
使用 symmetricDifference(_:)方法来创建一个只包含两个合集各自有的非共有值的新合集;
使用 union(_:)方法来创建一个包含两个合集所有值的新合集;
使用 subtracting(_:)方法来创建一个两个合集当中不包含某个合集值的新合集。
*/

let oddDigits: Set = [1, 3, 5, 7, 9]
let evenDigits: Set = [0, 2, 4, 6, 8]
let singleDigitPrimeNumbers: Set = [2, 3, 5, 7]

// 创建一个包含两个合集所有值的新合集
oddDigits.union(evenDigits).sorted()        // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

// 创建一个包含两个合集共有值的新合集
oddDigits.intersection(evenDigits).sorted()     // []

// 创建一个 两个合集当中不包含某个合集值的新合集
oddDigits.subtracting(singleDigitPrimeNumbers).sorted()     // [1, 9]

// 创建一个只包含两个合集各自有的非共有值的新合集
oddDigits.symmetricDifference(singleDigitPrimeNumbers).sorted()     // [1, 2, 9]

2. 合集成员关系和相等性

image.png
/*
使用“相等”运算符 ( == )来判断两个合集是否包含有相同的值;
使用 isSubset(of:) 方法来确定一个合集的所有值是被某合集包含;
使用 isSuperset(of:)方法来确定一个合集是否包含某个合集的所有值;
使用 isStrictSubset(of:) 或者 isStrictSuperset(of:)方法来确定是个合集是否为某一个合集的子集或者超集,但并不相等;
使用 isDisjoint(with:)方法来判断两个合集是否拥有完全不同的值。
*/

let houseAnimals: Set = ["?", "?"]
let farmAnimals: Set = ["?", "?", "?", "?", "?"]
let cityAnimals: Set = ["?", "?"]

// 确定一个集合的所有值是否被某集合包含
houseAnimals.isSubset(of: farmAnimals)    // true

// 确定一个合集是否包含某个合集的所有值
farmAnimals.isSuperset(of: houseAnimals)    // true

// 判断两个合集是否拥有完全不同的值
farmAnimals.isDisjoint(with: cityAnimals)    // false

你可能感兴趣的:(合集Set)