Swift语言Set集合创建,访问和修改集合(包含、判空、删除、插值)
Set用来存储相同类型并且没有确定顺序的值
,当集合元素顺序不重要时或者希望确保每个元素只出现一次
时可以使用集合而不是数组
创建集合
一、创建一个空集合
//创建一个空集合
let goodsSets = Set<Character>()
print("goodsSets is of type Set<Character> with \(goodsSets.count) items.")
//打印输出:goodsSets is of type Set<Character> with 0 items.
二、用字面量创建集合
//用字面量创建集合
var fruitsSet:Set<String> = ["apple","banana","pear","orange","watermelon"]//这个fruitsSet变量被声明为“一个String值的集合”,写为Set<String>。由于这个特定的集合含有指定String类型的值,所以它只允许存储String类型值
print(fruitsSet)
//打印输出:["banana", "orange", "watermelon", "pear", "apple"]
//从输出结果可以看出Set是无序的
从输出结果可以看出Set是无序的
一个Set类型不能从数组字面量中被单独推断出来,因此
Set类型必须显式声明
,由于 Swift 的类型推断功能,如果你想使用一个数组字面量构造一个Set并且该数组字面量中的所有元素类型相同,那么你无须写出Set的具体类型
。fruitsSet的构造形式可以采用简化的方式代替:
例:
var fruitsSet: Set = ["apple","banana","pear","orange","watermelon"]
三、Set包含判断
判断Set中是否包含某个值(使用contains(<#T##member: String##String#>)
方法去检查Set中是否包含一个特定的值)
if fruitsSet.contains("orange"){
print("Contains in it")
} else {
print("Does not contain among them")
}
//打印输出:Contains in it
访问和修改集合
一、集合判空
判断Set 的count属性是否为0 (isEmpty)
//用数字字面量创建集合
var fruitsSet:Set<String> = ["apple","banana","pear","orange","watermelon"]
//获得Set中的元素数量,使用只读属性count
print("I have \(fruitsSet.count) favorite fruits")
//打印输出:I have 5 favorite fruits
//集合判空
//判断Set 的count属性是否为0 (isEmpty)
if fruitsSet.isEmpty{
print("count 是空的为0")
}else{
print("count不是空的有 \(fruitsSet.count) 个值")
}
//打印输出:count不是空的有 5 个值
二、添加元素
在Set中添加一个新元素,(通过调用Set的insert(<#T##newMember: String##String#>)
方法)
//添加元素
//在Set中添加一个新元素,(通过调用Set的insert(<#T##newMember: String##String#>)方法)
var fruitsSet:Set<String> = ["apple","banana","pear","orange","watermelon"]
fruitsSet.insert("cherry")////给fruitsSet添加一个新元素cherry(樱桃)
print("fruitsSet insert results:\(fruitsSet)")
//打印输出:
//fruitsSet insert results:["banana", "pear", "orange", "cherry", "watermelon", "apple"]
三、删除元素
删除Set中的元素(通过调用Set的remove(<#T##member: String##String#>
)方法去删除一个元素,如果该值是该Set的一个元素则删除该元素并且返回被删除的元素值,否则如果该Set不包含该值,则返回nil。另外,Set中的所有元素可以通过它的removeAll()
方法删除)
//删除元素
var fruitsSet:Set<String> = ["apple","banana","pear","orange","watermelon"]
if let removeFruits = fruitsSet.remove("pear") {
print("remove:\(removeFruits)")
}else {
print("fruitsSet none pear")
}
//打印输出:remove:pear
网友评论