1.集合的三特性

  1. 确定性:给定一个集合,任意给一个元素,该元素或者属于或者不属于该集合,二者必居其一。
  2. 互斥性:一个集合中的所有元素都是不相同的。
  3. 无序性:每个元素的地位相同,元素之间是无序的。

2.Set的创建

// 初始化器创建
var letters = Set<Character>()
letters.insert("c")
print(letters) // 输出 ["c"]// 数组字面量来创建set
var course: Set<String> = ["Math", "English"]
course.insert("History")

3.Set的遍历

For-in遍历,由于Set是无序的,如果要顺序遍历Set,需要使用sorted()方法。

var courses: Set<String> = ["Math", "English"]
for course in courses.sorted() {print(course)
}
// 输出  English  Math

4.Set常用属性和方法

  • 使用count获得Set里元素个数
  • 使用isEmpty判断Set是否为空
  • insert(_: )添加一个元素到Set
  • update(with:) 如果已有相等的元素,替换为新的元素,如果Set中没有,则插入
  • filter(_:)返回一个新的Set,新Set的元素是原始Set符合条件的元素
var personSet: Set = [Person(name: "lewis", age 30)]
personSet.update(with: Person(name: "Jonathan", age: 20))
print(personSet.filter{ $0.age > 25 })
// 输出 Person[name: "lewis", age: 30]

  • remove(_:)从Set中移除一个元素,如果元素是Set的成员就移除它,并返回移除的值,如果集合没有这个成员就返回nil
  • removeAll()移除集合中所有元素

5.Set的基本操作

  • intersection(_:)是求两个集合的交集
  • union(_:)求两个集合的并集
  • symmetricDifference(_:)就两个集合的对称差集
  • subtracting(_:)是求两个集合的相对补集
let set: Set<Character> = ["A","B","C"]
let set2: Set<Character> = ["B","E","F","G"]
print(set.intersection(set2))
print(set.union(set2))
print(set.symmetricDifference(set2))
print(set.subtracting(set2))
// 输出如下
//  ["B"]
//  ["E","F","B","G","A","C"]
//  ["E","F","C","A","G"]
//  ["A","C"]

6.Set的判断方法

  • isSubset(of:)判断是否是另一个Set或者Sequence的子集
  • isSuperset(of:)判断是否是另一个Set或者Sequence的超集
  • isStrictSubset(of:)和isStrictSuperset(of:)判断是否是另一个Set的子集或超集,但又不等于另个一Set
  • isDisjoint(with:)判断两个Set是否有公共元素,如果没有返回true,有则返回false
let smallSet: Set = [1,2,3]
let bigSet: Set = [1,2,3,4]
print(smallSet.isSubset(of: bigSet))
print(bigSet.isSuperset(of: smallSet))
print(bigSet.isStrictSuperset(of: smallSet))
print(smallSet.isDisjoint(with: bigSet))
// 输出 true true true false

linq判断集合中相同元素个数_iOS开发swift语法梳理:集合Set相关推荐

  1. linq判断集合中相同元素个数_JavaSe集合的概念以及集合框架介绍

    ###集合 今天任务 1.概念1.1 集合的概念1.2 集合的框架结果介绍1.3 集合和数组的对比 2.Collection接口2.1 Collections中常用的方法 3.泛型3.1 什么是泛型3 ...

  2. java基础—自定义一个比较器,对TreeSet 集合中的元素按指定方法来排序(java集合六)

    自定义一个比较器,对TreeSet 集合中的元素按指定方法来排序 import java.util.Comparator; import java.util.Iterator; import java ...

  3. linq判断集合中相同元素个数_java----Collection集合常用方法

    Collection集合常用方法名 说明 boolean add(E e) 集合当中添加元素 Boolean remove(object o) 从集合当中清除指定元素 Void clear() 清空集 ...

  4. python集合中的元素是否可以重复_python列表--查找集合中重复元素的个数

    方法一: >>> mylist = [1,2,2,2,2,3,3,3,4,4,4,4] >>> myset = set(mylist) >>> f ...

  5. java 迭代器 entryset_Java使用entrySet方法获取Map集合中的元素

    本文为大家分享了使用entrySet方法获取Map集合中元素的具体代码,供大家参考,具体内容如下 /*--------------------------------- 使用entrySet方法取出M ...

  6. 判断数组中某个元素除自身外是否和其他数据不同_布隆过滤器,我也是个处理过 10 亿数据的人...

    ❝ 文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱 什么是 BloomFilter 布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的.它实际上是 ...

  7. 判断数组中某个元素除自身外是否和其他数据不同_算法工程师要懂的3种算法数据结构:线性表详解...

    算法思想有很多,业界公认的常用算法思想有8种,分别是枚举.递推.递归.分治.贪心.试探法.动态迭代和模拟.当然8种只是一个大概的划分,是一个"仁者见仁.智者见智"的问题. 其实这些 ...

  8. 如何去掉list集合中重复元素大全

    如何去掉list集合中重复元素大全 创建实体对象 模拟集合 方法一:遍历实体类的每一个属性 方法二:利用list中contains方法去重 方法三:java 8中流式去重操作 方法四:HashSet去 ...

  9. python集合类型中的元素是有序的_数据类型;有序集合类型(sorted set)

    有序集合sortedset 一特点 1.有序.去重 2.元素是字符串类型 3.每个元素都关联着一个浮点数分值(score),并按照分支从小到大的顺序排列集合中的元素(分值可以相同) 4.最多包含2^3 ...

最新文章

  1. Spring mvc HandlerMapping 实现机制
  2. 【数据结构笔记30】拓扑排序、AOV网络、AOE网络、关键工序
  3. git 日常 常用命令
  4. 遥感数字图像处理——第五章——辐射校正
  5. 值得收藏的UmiJS 教程
  6. Maven命令安装JAR包到本地仓库
  7. erdas空间建模_ERDAS空间建模工具介绍
  8. Glide图片框架使用详细介绍(一),kotlin从入门到进阶实战电子书
  9. 草根IT江湖路之三:希望,在坚持之中
  10. 谈业务流程全生命周期管理支撑业务流程再造(2)
  11. POI使用公式的问题,POI对excel函数的支持
  12. thinkpad e450c 键盘拆解
  13. 分组折线图、柱状图实现(多条折线图、柱状图同时显示)实现方式
  14. python寻峰,[LeetCode][Python]162. 寻找峰值
  15. strlen获取char*的大小问题
  16. 计算机专业建议买苹果笔记本吗,笔记本买win还是买Mac?也许可以参考这些建议...
  17. 知物由学 | 虚假色情泛滥,人工智能可以做些啥?
  18. 全国历史天气查询/历史天气预报查询——全国各月份数据爬取
  19. 日常开发中的一些js处理数据的方法,包括对数据的过滤,以及对数据的验证
  20. Python每日一练——第4天:百钱百鸡问题(升级版)

热门文章

  1. jax-ws cxf_Apache CXF – JAX-WS –简单教程
  2. macosx jdk_MacOSX环境上的多个Java JDK
  3. java三件套_Java开发人员应该知道的三件事
  4. activemq 连接_ActiveMQ网络连接器
  5. 如何开发高度可定制的产品
  6. Mockito –带有注释和静态方法的额外接口
  7. 使用MRUnit测试Hadoop程序
  8. Java中的类型安全的空集合
  9. 立镖机器人浙江_立镖在美国获2020 NextGen供应链解决方案奖
  10. mysql启动命令 windows_Windows下Nginx的启动停止等基本操作命令详解