Set Programming Guide

Set Programming Guide,第1张

概述在Swift中,Set是管理无序集合的对象。当你不关心集合中元素的顺序,只关心每个元素在整个集合中是唯一的时候,你可以使用Set。Set的内部结构图如下所示: 初始化 // MARK: 初始化private func testInit() { // 空Set var set = Set<String>() set = [] // 通过参数创建 set =

在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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1083239.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存