
在Swift中,Set是管理无序集合的对象。当你不关心集合中元素的顺序,只关心每个元素在整个集合中是唯一的时候,你可以使用Set。Set的内部结构图如下所示:
初始化// MARK: 初始化private func testinit() { // 空Set var set = Set<String>() set = [] // 通过参数创建 set = Set(["阳君","937447974"]) set = Set(arrayliteral: "阳君","937447974") let set2:Set<String> = ["阳君","937447974"] print("\(set2)") // 通过Set创建 set = Set(set) print("\(set)")}相关属性
// MARK: 相关属性private func testPropertIEs() { let set:Set<String> = ["阳君","937447974","swift"] print("count:\(set.count)") // 有多少个元素 print("first:\(set.first)") // 顶部元素 print("isEmpty:\(set.isEmpty)") // 是否为空 print("hashValue:\(set.hashValue)") // hash值 // 首位和末位 var index = set.startIndex index = set.endindex print("index:\(index)")}查找元素
// MARK: 查找元素private func testFindingObjects() { let set:Set<String> = ["阳君","swift"] print("contains:\(set.contains("阳君"))") // 是否存在这个元素 // 查找位置 var index = set.indexOf("阳君") index = set.indexOf { (str) -> Bool in return "阳君" == str } let str = set[index!] // 根据位置获取元素 print("str:\(str)") // 遍历输出 // 无序输出 for item in set { print("item:\(item)") } // 有序输出 for item in set.sort() { print("item:\(item)") }}增加和删除
// MARK: 增加和删除private func testAddAndRemove() { var set:Set<String> = ["阳君","swift"] set.insert("IOS") // 增加 var str = set.remove("IOS") // 删除指定元素,并返回删除的元素 str = set.removeAtIndex(set.indexOf("阳君")!) // 根据位置删除 str = set.removeFirst() // 删除首个 set.removeAll() // 删除所有 print("str:\(str)")}结合和重组
// MARK: 结合和重组private func testCombiningAndRecombining() { let a:Set<String> = ["阳君","swift"] let b:Set<String> = ["IOS","swift"] let c:Set<String> = ["阳君","swift","IOS"] print("isEqual:\(a == b)") // 是否相等 print("isSubsetof:\(a.isSubsetof(c))") // a是否是c的子集 print("isSupersetof:\(c.isSupersetof(a))") // a是否是c的子集 var set = a.intersect(b) // a交c,返回新set;["937447974","swift"] set = a.union(b) // a并b;["阳君","937447974","swift","IOS"] set = a.subtract(b) // a差b,即a-a交b;["阳君"] set = a.exclusiveOr(b) // a并b-a交b;["阳君","IOS"] // 不返回结果集,直接修改前set set.intersectInPlace(b) // set交b,结果在set中 set.unionInPlace(b) // a并b set.subtractInPlace(b) // a差b,即a-a交b set.exclusiveOrInPlace(b) // a并b-a交b}排序
// MARK: 排序private func testSort() { let set:Set<String> = ["阳君","IOS","837447974",] var array = set.sort() // 排序,升序 array = set.sort { (str1,str2) -> Bool in return str1 < str2 } // 简写 array = set.sort({ str1,str2 in str1 < str2 }) array = set.sort({$0 > $1}) array = set.sort(>) print("\(array)")}其他 参考资料
Set Structure Reference
The Swift Programming Language (Swift 2.1)
NSSet Class Reference
| 时间 | 描述 |
|---|---|
| 2015-10-26 | 根据Swift2.1 Set的API总结 |
版权所有:http://blog.csdn.net/y550918116j
总结以上是内存溢出为你收集整理的Set Programming Guide全部内容,希望文章能够帮你解决Set Programming Guide所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)