在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,1]
Set集合并集,两个集合中的所有元素并集在一起,但重复的元素只保留一个.
let setFive = setOne.union(setTwo)print(setFive)// 输出的结果为: [5,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)
好了,这次我们就讲到这里,下次继续
总结以上是内存溢出为你收集整理的7.Swift 中的Set集合全部内容,希望文章能够帮你解决7.Swift 中的Set集合所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)