哈希表(js版)

一、哈希表

  • 哈希表是根据关键码的值而直接进行访问的数据结构。比如数组就是一张哈希表。

  • 哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素。

  • 一般哈希表都是用来快速判断一个元素是否出现集合里。【算法题常用】

二、常见的三种哈希结构

当我们想使用哈希法来解决问题的时候,我们一般会选择如下三种数据结构。

  • 1.数组
  • 2.set (集合)
  • 一种**无序且唯一**的数据结构。
  • ES6中有集合,名为set。
  • 集合的常用操作:去重、判断某元素是否在集合中、求交集…
// 查看集合
const arr = [1, 1, 2, 2, 2];
const set = new Set(arr)//Set(2) {1, 2} 
//查看集合的长度
console.log(set.size);//2

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

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

//求交集
const set2 = new Set([2, 3]);
const set3 = new Set([...set].filter(item => set2.has(item)));
console.log(set3); //{ 2 }
  • 3.map (字典)
  • 与集合类似,字典也是一种**存储唯一值**的数据结构,但它是以键值对的形式来存储的。
  • ES6中有字典,名为Map。
  • 字典的常用操作:键值对的增删改查。
const m = new Map();

// 增
m.set('a', 'aa');
m.set('b', 'bb');

//查看字典m:
Map(2) {"a" => "aa", "b" => "bb"}
//获取字典的长度
console.log(m.size);//2

// 删
m.delete('b');
// m.clear();

// 改
m.set('a', 'aaa');

//查
m.get('a'); //'aaa'

//判断a是否存在字典中
m.has('a'); //true

三、力扣相关算法题

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值