Set 集合
概念
和数组非常类型,没有顺序,统一类型,内容不能重复
声明
Set 方法传入一个数组,会自动去除重复的内容
swift
var s = Set([1, 2, 2, 3, 3, 4])
print(s) // [2, 3, 4, 1]是否为空
isEmpty 判断是否为空
swift
var s = Set([1, 2, 2, 3, 3, 4])
print(s.isEmpty) // false获取长度
count 获取长度
swift
var s = Set([1, 2, 2, 3, 3, 4])
print(s.count) // 4插入元素
insert 方法可插入元素,返回两个值,第一个是一个布尔值,表示是否插入成功,第二个值的插入的内容
如果已经存在的内容就会插入失败
swift
var a = Set(["苹果", "香蕉", "栗子"])
var (c, v) = a.insert("苹果")
print(c, v) // false 苹果update 方法可以强行插入
swift
var a = Set(["苹果", "香蕉", "栗子"])
a.update(with: "橘子")
print(a) // ["栗子", "橘子", "香蕉", "苹果"]删除元素
remove 可以删除指定的元素
swift
var a = Set(["苹果", "香蕉", "栗子"])
a.remove("苹果")
print(a) // ["香蕉", "栗子"]removeAll 可以删除全部元素
swift
var a = Set(["苹果", "香蕉", "栗子"])
a.removeAll()
print(a) // []布尔运算
union 方法可以合并两个集合
swift
var a = Set(["苹果", "香蕉", "栗子"])
var b = Set(["香蕉", "橙子", "西瓜"])
print(a.union(b)) // ["西瓜", "栗子", "香蕉", "橙子", "苹果"]subtracting 方法可以减去相同的元素
swift
var a = Set(["苹果", "香蕉", "栗子"])
var b = Set(["香蕉", "橙子", "西瓜"])
print(a.subtracting(b)) // ["苹果", "栗子"]intersection 方法可以获取相交的部分
swift
var a = Set(["苹果", "香蕉", "栗子"])
var b = Set(["香蕉", "橙子", "西瓜"])
print(a.intersection(b)) // ["香蕉"]symmetricDifference 方法可以获取除去相交之外的部分
swift
var a = Set(["苹果", "香蕉", "栗子"])
var b = Set(["香蕉", "橙子", "西瓜"])
print(a.symmetricDifference(b)) // ["橙子", "栗子", "西瓜", "苹果"]超集喝子集
isSubset 方法获取一个集合是否为目标参数的子集
isSuperset 方法获取一个集合是否为目标参数的超集
swift
var a = Set(["苹果", "香蕉", "栗子"])
var b = Set(["香蕉"])
print(b.isSubset(of: a)) // a 里有香蕉,所以 b 是 a 的子集
print(a.isSuperset(of: b)) // a 里有香蕉,所以 a 是 b 的超集随机数
randomElement 方法获取集合中的随机数
swift
var a = Set(["苹果", "香蕉", "栗子"])
print(a.randomElement() ?? "")