合集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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 提起分身术你能想起什么?孙悟空的毫毛?漩涡鸣人的影分身术?赫敏的时间转换器? 说实话我刚开始看到“分身术训练营”这...
    糖小炜阅读 4,481评论 0 2
  • 18块包夜的网费 四周弥漫的二手烟味 不时响起的脏话和飞洒的口水 闭着眼想要入睡却无法入眠的疲惫 心里想要的那个梦...
    家伟Hjw阅读 1,328评论 0 0
  • 如果不是来重庆,我真的无法想象,车子可以开的离山这么近,我保证,只要你能打开窗,伸出手就能摸到山,真的。 上次一人...
    叶泱曲庸阅读 3,931评论 2 3
  • 文/驭风者 过了大悲大喜的年纪 只愿收获一份平静 正如明月映着小溪 流过炎炎的夏日 下雨的时候 便是回家 那一池静...
    驭风者hou阅读 3,081评论 7 9

友情链接更多精彩内容