Swift 语言简明教程(七) - 集合类型

Swift 语言简明教程(六) - 字典类型 中, 我们了解了 Swift 中字典类型的用法,现在我们来了解一下 Swift 中的集合类型 - Set。

集合可以用来存储无序,不重复的数据。

声明及初始化

1
2
var set1:Set<Int> = [1,2,3,4]
var set2 = Set(arrayLiteral: 1,2,3,4)

注意与Array的定义和初始化区别

简单操作

判断元素个数

使用 count 属性

1
set1.count

判断集合是否为空

使用 isEmpty 属性

1
2
3
if set1.isEmpty {
print("集合为空")
}

判断是否包含某元素

1
2
3
if set1.contains(1){
print("集合包含")
}

添加元素

1
set1.insert(5)

删除元素

1
set1.remove(1)

注意:这里的1不是序号(下标),是1这个元素

删除所有元素

1
set1.removeAll()

集合操作

假设有两个集合

1
2
var set3:Set<Int> = [1,2,3,4]
var set4:Set<Int> = [1,2,5,6]

取交集

1
var setInter = set3.intersection(set4)

运算以后,setInter 将包含 {2, 1}

取并集

1
var setUni = set3.union(set4)

运算以后,setUni 将包含 {4, 5, 6, 3, 1, 2}

取补集

1
var setEx = set3.symmetricDifference(set4)

运算以后,setEx 将包含 {4, 6, 3, 5}

子集判断

假设有如下的几个集合:

1
2
3
4
var set5:Set = [1,2]
var set6:Set = [2,3]
var set7:Set = [1,2,3]
var set8:Set = [1,2,3]
  1. 判断是否是某个集合的子集 set5是set7的子集 返回ture
1
set5.isSubset(of: set7)
  1. 判断是否是某个集合的超集 set7是set5的超集 返回ture
1
set7.isSuperset(of: set5)
  1. 判断是否是某个集合的真子集

set5是set7的真子集 返回ture

1
set5.isStrictSubset(of: set7)

set7不是set8的真超集 返回false

1
set7.isStrictSuperset(of: set8)

遍历元素

可以使用 for 语句进行遍历

1
2
3
for item in set7 {
print(item)
}

也可以获取元素的下标

1
2
3
for index in set7.indices {
print(set7[index])
}

还可以设定排序后进行遍历

1
2
3
for item  in set7.sorted(by: >){
print(item)
}

下一步

接下来,我们将简要的介绍 Swift 中的函数 - Swift 语言简明教程(八) - 函数

本文标题:Swift 语言简明教程(七) - 集合类型

文章作者:Morning Star

发布时间:2021年04月20日 - 10:04

最后更新:2022年01月14日 - 11:01

原始链接:https://www.mls-tech.info/app/swift/swift-tutorial-7-set/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。