//集合(set):用来存储相同类型并且没有顺序的值,当顺序不重要 或者 希望每个元素只出现一次时,用集合 而不用数组
//1.定义
var letters = Set<Character>() //<>中是允许该集合存储的类型 Character是字符类型
print("定义了一个空的字符集合,元素个数为:\(letters.count)")
letters.insert("a")//集合中插入了一个字符"a"
letters = []//集合又被置空了,但他仍然是一个字符型(Character)集合
var favoriteSet: Set<String> = ["玫瑰","小布丁","钓鱼"]
var favoriteSet2: Set = ["睡觉","吃","玩"]//如果赋值是同一类型,定义时可以不写
print("集合的定义加赋值:\(favoriteSet),\(favoriteSet2.count)")
if favoriteSet2.isEmpty{
print("集合为空")
}else{
print("该集合不为空:\(favoriteSet2)")
}
//2.增加、删除、查询、遍历
favoriteSet2.insert("羽毛球")
print("给集合增加元素:\(favoriteSet2)")
if let removeSetValue = favoriteSet2.remove("玩") {
print("从集合中移除了一个元素:\(removeSetValue)")
}else{
print("要移除的元素不在集合中")
}
if favoriteSet2.contains("玫瑰") {
print("你好,玫瑰")
}else{
print("竟然不在这里")
}
for item in favoriteSet2 {
print("遍历集合的值:\(item)")
}
for item in favoriteSet2.sorted(){//Set是没有顺序的,但是遍历时用sorted可以吧元素按“<”的顺序遍历
print("按特定顺序来遍历集合:\(item)")
}
//3.集合操作:合并、共有元素、非共有元素、非重复元素
let aSet: Set = [1,3,5,7,9]
let bSet: Set = [0,2,4,6,8]
let cSet: Set = [2,3,5,7]
let hSet = aSet.union(bSet).sorted() //把a集合和b集合按照升序合并成一个新的集合
print("集合的合并1:\(hSet)")
let hSet2 = aSet.union(cSet).sorted()//a集合和c集合合并
print("集合的合并2:不会保留重复元素:\(hSet2)")
let gSet = aSet.intersection(cSet).sorted()//取出a集合和c集合中的共有部分
print("获取两个集合的共有部分:\(gSet)")
let bgSet = aSet.symmetricDifference(cSet).sorted()//取出a集合和c集合中非共有部分
print("获取两个集合中非共有的部分:\(bgSet)")
let bzSet = bSet.subtracting(cSet).sorted()//取出b集合中不在c集合中的元素
print("取出b集合不在c集合中的元素:\(bzSet)")
//全包含、部分包含、不相交
let set_a: Set = [1,2,3,4,5,6]
let set_b: Set = [3,5]
let set_c: Set = [7,8,9]
let isA = set_a.isSuperset(of: set_b)//返回 set_a 是否包含 set_b
let isB = set_b.isSubset(of: set_a)//返回 set_b 是否被 set_a 包含
let isC = set_a.isDisjoint(with: set_c)//返回 set_a 是否跟 set_c 没有交集
let isEq = set_a == set_b
print(isA,isB,isC,isEq)
04.Swift集合
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 集合类型 (Collection Types) 自从苹果2014年发布Swift,到现在已经两年多了,而Swift...
- 1 .数组 Arrays 数组使用有序列表存储同一类型的多个值。相同的值可以多次出现在一个数组的不同位置中。这和O...