首页 > 其他分享 >数据结构中的集合

数据结构中的集合

时间:2023-04-22 23:32:13浏览次数:61  
标签:set const 元素 add 集合 new 数据结构

原文点此跳转

什么是集合?

集合是一种无序且唯一的数据结构,其中的唯一是指集合中的元素。在 ES6 中新增了一种数据结构 Set 就是集合。


实现功能

  • new() 实例化一个集合
  • add() 添加元素
  • delete() 删除元素
  • has() 判断是否存在元素
  • size() 获取集合大小

应用场景

  1. 去重
  2. 判断某元素是否在集合中
  3. 求两个集合的交集

基础案例

常用操作

const set = new Set()

// 添加 set 元素
set.add(1)
set.add(5)
set.add(5)
set.add('some text')
const o = { a: 1 }
set.add(o)
set.add({ a: 1 })

// 判断元素是否存在 set 中
const has = set.has('some text') // true

// 删除 set 元素
set.delete(5)

// 迭代
for (const item of set) {
    console.log(item)
}

应用场景

// 去重
const arr = [1, 1, 2, 2]
const arr2 = [...new Set(arr)] // [1, 2]

// 判断元素是否在集合中
const set = new Set(arr)
const has = set.has(3) // false

// 求交集
const set2 = new Set([2, 3])
const set3 = [...set].filter((x) => set2.has(x)) // [2]

原文点此跳转

标签:set,const,元素,add,集合,new,数据结构
From: https://blog.51cto.com/u_12639291/6215720

相关文章

  • 数据结构题解
    W1#怪兽训练计划1##题目描述小明有一个怪兽训练计划。初始时,怪兽充满能量,能量值为8800。如果训练怪兽,每分钟损耗能量值400;如果让怪兽休息,每分钟增加能量值200。能量的损耗和增加都是均匀变化的。小明打算让怪兽训练一分钟、休息一分钟、再训练一分钟、再休息一分钟……如此......
  • 【中级软件设计师】—(针对上午题)数据结构(二十八)
    【中级软件设计师】—(针对上午题)数据结构(二十八)一、时间复杂度二、空间复杂度123456递归的时间复杂度和空间复杂度......
  • redis数据结构
    ZipListziplist是一种特殊的“双向链表”,由一系列特殊编码的连续内存组成,可以在任意一端进行压入和弹出。ZipList的结构ZipListEntry的结构entry并不像普通双向链表节点用两个指针指向前后节点,为了节省空间。previous_entry_length:前一个节点的长度,占1个或5个字节如果......
  • 【中级软件设计师】—(针对上午题)数据结构(二十九)
    【中级软件设计师】—(针对上午题)数据结构(二十九)一、查找平均查找长度二、顺序查找三、折半查找(二分查找)1234567......
  • lua变量、数据类型、if判断条件和数据结构table以及【lua 函数】
    一、lua变量【全局变量和局部变量和表中的域】Lua变量有三种类型:全局变量和局部变量和表中的域。▪全局变量:默认情况下,Lua中所有的变量都是全局变量。▪局部变量:使用local显式声明在函数内的变量,以及函数的参数,都是局部变量。在函数外即使用local去声明,它的作用域也是当前的整......
  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之002 week01 02-02 线性查找法
    1、线性查找法什么是线性查找法?举例:在一沓试卷中,找到属于自己的那张试卷。第1张:不是第2张:不是第3张:不是……第n张:是,找到了!第n+1张:不找了……这个解决问题的思路和过程体现就是线性查找法的思想。2、线性查找法思路梳理线性查找法,就是在线性的数据结构中来完成。例如:在data数......
  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之001 week01 02-01 什么是算法?
    1、什么是算法?为了明确什么是算法,我们会从简单的查找功能开始讲起。查找其实一个一个非常简单的算法,但我们会为这个查找功能的算法做如下工作:让查找的功能适应更多的数据类型通过查找的例子讲解如何编写正确的程序?为查找算法性能测试对一些常见算法做复杂度分析2、定义算法Algorit......
  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之006 week01 02-06 循环不变量
    循环不变量1、循环开始时需要做什么?之前我们讲的线性查找法的核心代码如下:publicstatic<E>intsearch(E[]data,Etarget){for(inti=0;i<data.length;i++)if(data[i].equals(target))returni;return-1;}我们是否有思考过,这样一个......
  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之007 week01 02-07 简单的复杂度分析
    1、复杂度分析复杂度分析本身是非常理论化的一个内容,在计算机科学中,有一个专门的学科叫做——计算复杂性理论。很多童鞋看过《算法导论》,这本书的内容很多很强调算法导论。但是实际上,对于普通程序员来说,不需要过度强调理论化的内容。因为工作中更多面对的是实际的软件工程,工程化的......
  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之003 week01 02-03 代码实现线性查找
    1、算法描述在数组中逐个查找元素,即遍历。2、思路原理如算法描述,基本是最简单的代码块了,没有什么额外的原理。3、初步的代码实现线性查找法初步的代码实现:packagecom.mosesmin.datastructure.week01.chap02;/***@Misson&Goal代码以交朋友、传福音*@ClassNameLinearSearc......