04.Swift集合

//集合(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)



©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,226评论 6 524
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,509评论 3 405
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 172,523评论 0 370
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,181评论 1 302
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,189评论 6 401
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,642评论 1 316
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 41,993评论 3 431
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 40,977评论 0 280
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,527评论 1 326
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,547评论 3 347
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,661评论 1 355
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,250评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,991评论 3 340
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,422评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,571评论 1 277
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,241评论 3 382
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,737评论 2 366

推荐阅读更多精彩内容

  • 集合类型 (Collection Types) 自从苹果2014年发布Swift,到现在已经两年多了,而Swift...
    Lebron_James阅读 606评论 0 0
  • 1 .数组 Arrays 数组使用有序列表存储同一类型的多个值。相同的值可以多次出现在一个数组的不同位置中。这和O...
    iceMaple阅读 469评论 0 1
  • 集合的初始化必须显式声明类型,不然会被认为是数组。 空集合 集合的增删改查 获取元素个数 判空 包含 遍历 比较 ...
    兰帕德阅读 362评论 0 0
  • 创建空集合 创建有元素的集合 单个集合的基本操作 遍历集合 console log 如下: 多个集合的操作 con...
    点滴86阅读 272评论 0 0
  • 我想要的生活 梦想把我从温暖的被窝唤醒 她还残留着一丝模糊的微笑 像清澈湖面的涟漪 渐渐远去抹去 但我记得她明亮的...
    潜山评论阅读 130评论 0 0