js——Set和Map,以及哈希表

本文介绍了哈希表的概念、哈希函数设计方法及冲突解决策略。接着探讨了Java中HashMap与Map的关系,指出HashMap是Map接口的一个实现,基于哈希表。在JavaScript中,Map作为键值对的存储结构,可以接受各种类型的键,而Set则确保了唯一性,适合用于数组去重等操作。此外,文章还展示了如何在JS中初始化、转换、遍历和操作Set。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:Map和Set不能通过下标访问数据,因为集合里面元素无序。所以遍历Map和Set中的数据一般使用for of或者forEach方法。
在这里插入图片描述

1.哈希表
参考链接

哈希表概述:
散列表(Hash table,也叫哈希表),是根据关键值(Key)而直接进行访问的数据结构。也就是说,它通过把关键值key映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数(哈希函数),存放记录的数组叫做散列表。(哈希表一般用数组来存储)
向哈希表中存数据:
根据数据的key值和哈希函数,得到一个数组下标,这个下标的含义是数据在哈希表中的存放的位置。若发生了冲突,则再根据冲突的处理方法来解决冲突。找到最终存放的位置后,将数据存放进去。
在哈希表中查找数据:
根据数据的key值和哈希函数,以及解决冲突的方法来找。
所以哈希表查询某个数据的时间复杂度为o(1)
在这里插入图片描述
哈希函数的设计方法有:
.直接寻址法、
解决冲突的方法有:
开放寻址法(包括线性探测法,平方探测法,双哈希)、再散列法、 链地址法
在这里插入图片描述
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值