数据结构与算法(二)

一、集合

1.1 集合概念

集合比较常见的实现方式是哈希表(后续会学习),

  • 集合通常是由一组无序的,不能重复的元素构成。
    和数学中的集合名词比较相似,但是数学中的集合范围更大一些也允许集合中的元素重复。
  • 在计算机中,集合通常表示的结构中元素是不允许重复的。

集合相当于特殊的数组,特殊之处在于里面的元素没有顺序,也不能重复,没有顺序意味着不能通过下标值进行访问,不能重复意味着相同的对象在集合中只会存在一份。

1.2 集合操作方法

在这里插入图片描述
在这里插入图片描述
划线部分的hasOwnProperty是js中的方法,判断
在这里插入图片描述
最后一种方法可以将Obj里面的keys个数全部返回出来

1.3 集合间操作

在这里插入图片描述

1.3.1 并集实现

代码解析

  • 首先需要创建一个新的集合,代表两个集合的并集。
  • 遍历集合1中所有的值并且添加到新集合中
  • 遍历集合2中所有的值,并且添加到新集合中
  • 将最终的新集合返回
    在这里插入图片描述
    this就是在这个方法里面的当前对象,然后再新创建一个对象otherSet,通过values方法得到集合里面所有元素,这个包含所有元素的value其实是一个数组
    在这里插入图片描述

1.3.2 交集实现

  • 创建一个新的集合.
  • 遍历集合1中的所有元素,判断是否该元素在集合2中.
  • 同时在集合2中,将该元素加入到新集合中.
  • 将最终的新集合返回.
    在这里插入图片描述

1.3.3 差集实现

  • 创建一个新的集合.
  • 遍历集合1中所有的元素,判断是否在集合2中.
  • 不存在于集合2中,将该元素添加到新集合中,
  • 将新集合返回
    在这里插入图片描述
    在这里插入图片描述
    下图就是集合A中有但是集合B没有的测试代码
    在这里插入图片描述

1.3.4 子集实现

  • 判断集合1是否大于集合2,如果大于,那么肯定不是集合2的子集.
  • 不大于的情况下:
    判断集合1中的元素是否都在集合2中存在
    ➢存在,那么是集合2的子集.
    ➢有一个不存在,那么不是集合2的子集.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值