7.Swift 中的Set集合
来源:互联网 发布:鸭鸭网络平台 编辑:程序博客网 时间:2024/06/06 02:02
在Swift当中, 除了数组, 字典之外, 我们还有另外一个集合类型叫做Set, Set集合并没有确定的排列顺序, 所以说是无序的, 但Set有一个优点就是它可以保证每个元素只出现一次, 所以说, 当元素顺序不重要时, 并且元素需要唯一的, 那我们就可以使用Set集合了, 下面让我们来看看.
1.Set集合的声明
// 1.隐式声明var nameSet: Set<String>?// 2.使用Set声明, Swift会自动判断元素的类型var ageSet: Set = [20, 30, 25, 10]// 3.使用Set<类型>声明, 限制该Set集合是String类型.var personSet: Set<String> = ["xiaoming", "zhangsan", "zhangsan"]print(personSet)// 输出的结果为: ["xiaoming", "zhangsan"]
里面重复的元素直接被remove掉, 只剩下没有重复的元素.
2.Set集合的访问和修改
Set集合一样可以使用isEmpty来判断是否为nil.
if personSet.isEmpty { print("Set don't have people.")} else { print("Set have \(personSet.count) people.")}// 输出来得结果为: Set have 2 people.
Set集合也可以使用insert来插入元素
personSet.insert("Lisi")print(personSet)// 输出的结果为: ["Lisi", "xiaoming", "zhangsan"]
也可以使用remove来删除对应的元素.
if let removedOne = personSet.remove("xiaoming") { print("xiaoming? he not here.")} else { print("xiaoming here.")}// 输出的结果为: xiaoming? he don't here.
也可以通过contains来查询Set集合是否包含元素
if personSet.contains("zhangsan") { print("zhangsan here.")} else { print("zhangsan not here.")}// 输出的结果为: zhangsan here.
3.Set集合的遍历
直接遍历
for people in personSet { print(people)}// 输出结果为:// Lisi// zhangsan
有序遍历
for people in personSet.sort() { print("\(people)")}// 输出结果为:// Lisi// zhangsan
PS: 由于我这里的元素较少, 所以输出的结果都一致, 一旦元素多了, 输出的结果就会有所改变.
4.Set集合的操作
Set集合的交集, 所谓的交集就是, 两个Set集合中相同的元素所组合成的一个新的集合.
var setOne: Set = [1, 2, 3, 4]var setTwo: Set = [3, 4, 5]let setThree = setOne.intersect(setTwo)print(setThree)// 输出的结果为: [3, 4]
Set集合不相交得元素, 两个集合当中不相同元素所组合成的一个新的集合.
let setFour = setOne.exclusiveOr(setTwo)print(setFour)// 输出的结果:[5, 2, 1]
Set集合并集, 两个集合中的所有元素并集在一起, 但重复的元素只保留一个.
let setFive = setOne.union(setTwo)print(setFive)// 输出的结果为: [5, 2, 3, 1, 4]
Set集合的中的排他集合, 判断B集合中的元素是否在A集合中也包含, 如果有, 就把相同的元素去掉, 剩下没有重复的元素组合成一个新的集合.
let setSix = setOne.subtract(setTwo)print(setSix)// 输出的结果为: [2, 1]
5.Set集合的其他操作
// 判断setTwo集合是否包含setOne集合中得元素let setThree = setOne.isSubsetOf(setTwo)print(setThree)// 判断setOne的元素是否都包含在setTwo集合中let setFour = setTwo.isSupersetOf(setOne)print(setFour)// 判断setOne集合和setTwo集合是否不含有相同的值, 也就是说两个集合没有相交的元素let setFive = setTwo.isDisjointWith(setOne)print(setFive)// 判断setTwo是否是setOne的超集let setSix = setOne.isStrictSupersetOf(setTwo)print(setSix)// 判断setTwo是否是setOne的父集, 但不相等let setSeven = setOne.isStrictSubsetOf(setTwo)print(setSeven)
好了, 这次我们就讲到这里, 下次继续
0 0
- 7.Swift 中的Set集合
- Swift 中的集合 (Set)
- swift Set(集合)
- Swift Set常用集合操作
- Swift中的集合类型
- Swift中的选项集合
- java中的Set集合
- Java中的Set集合
- python中的集合set
- Java中的Set集合
- Swift中的get和set
- Swift中的集合类数据结构
- Python中的SET集合操作
- Python中的SET集合操作
- Python 中的 集合类型 --- set
- Java集合中的集:Set
- Python中的SET集合操作
- Python中的SET集合操作
- 深入理解WeakHashmap
- Android SDK和NDK区别
- js跨域及解决方案
- SQL Server 2012应用实践.pdf
- opengl学习笔记1:vs2013 nehe教程第一课 创建窗口
- 7.Swift 中的Set集合
- 2.7.0 gitk 打不开 Error in startup script: unknown color name "lime"
- 论破净和底部的关系
- Unity协程(Coroutine)原理深入剖析
- 【复习笔记】人工神经网络
- SVN和Git 介绍,区别,优缺点,适用范围总结
- 非典型 JavaMail 邮件附件名乱码问题
- iOS 支付宝的使用
- Android测试-脚本测试-Monkey 的用法