Set Programming Guide
发布时间:2020-12-14 01:42:09 所属栏目:百科 来源:网络整理
导读:在Swift中,Set是管理无序集合的对象。当你不关心集合中元素的顺序,只关心每个元素在整个集合中是唯一的时候,你可以使用Set。Set的内部结构图如下所示: 初始化 // MARK: 初始化 private func testInit () { // 空Set var set = SetString() 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 文档修改记录
版权所有:http://blog.csdn.net/y550918116j (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 安装Heroku的Taps gem
- 在C#中有一个boost :: shared_ptr等价物吗?
- ruby-on-rails – Carrierwave backgrounder sidekiq没有工
- Oracle CDC(Change Data Capture)概述
- c# – 每当我打开VS 2010解决方案时,如何禁用正在签出的.vs
- vue 中自定义指令改变data中的值
- ruby-on-rails – 如何在控制器中获取对象的URL
- Cocos2dx 截屏功能 3.2以上版本
- 根据C中的运行时字符串选择模板
- PostgreSQL的9.6黑科技绽放算法索引,一个索引支撑任意列组