3. Set

本文详细介绍了Swift中Set集合的特点及各种操作,包括无序性、不重复性、子集与父集判断、元素合并与交集,并展示了如何进行元素过滤、求和以及类型转换等操作。通过实例代码,帮助开发者深入理解Set的数据结构和使用方法。
摘要由CSDN通过智能技术生成

Set 集合

特点:

  1. 无序的
  2. 不重复
  3. 需要显示声明Set,看起来像Array
let testSet1: Set = [1,3,5,7,9]
let testSet2: Set = [1,2,3,4,9]// [2,4,6,8,10]
    
let testSet3: Set = [2,4,6,8,10]// [2,4,6,8,10]
print(testSet1.contains(3))
print(testSet1 == testSet2)
print(testSet3.isSubset(of: testSet2)) // 判断是不是另一个的儿子(子集,可以完全相同)
print(testSet3.isStrictSubset(of: testSet2)) // 判断是不是另一个的真儿子(真子集,不能完全相同)
print(testSet2.isSuperset(of: testSet1)) // 判断是不是另一个的老爹(可以完全相同)
print(testSet1.isDisjoint(with: testSet3)) // 判断2个集合的元素是否完全不同
print(testSet1.union(testSet3)) // 合并
print(testSet1.intersection(testSet2)) // 子集

print(testSet1.symmetricDifference(testSet2)) // 交集外的元素  [7, 5, 4, 2] ,正好等于下面2个的和
print(testSet1.subtracting(testSet2)) // 判断我在另一个集合里没有的元素 [7,5]
print(testSet2.subtracting(testSet1)) // 判断我在另一个集合里没有的元素 [2,4]

其他操作:

let sum1 = testSet1.reduce(0, +)
print(sum1) // 25
let testStrings = testSet1.map(String.init)
print(testStrings) // ["1", "9", "7", "3", "5"]
let stringToInt = testStrings.map(Int.init).map({$0!}) // 已知可以强制解包
print(stringToInt) // [1, 9, 7, 3, 5]

let testSet4 = testSet1.filter({$0 > 2})
print(testSet4) // [3, 5, 9, 7]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值