美文网首页
map数据结构

map数据结构

作者: 小冕 | 来源:发表于2017-07-17 09:16 被阅读0次

Map 的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键。

const map = new Map();
const k1 = ['a'];
const k2 = ['a'];
map.set(k1, 111)
map.set(k2, 222);
map.get(k1) // 111
map.get(k2) // 222

上面代码中,变量k1和k2的值是一样的,但是它们在 Map 结构中被视为两个键。

由上可知,Map 的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键。这就解决了同名属性碰撞(clash)的问题,我们扩展别人的库的时候,如果使用对象作为键名,就不用担心自己的属性与原作者的属性同名。
WeakMap与Map的区别有两点。
首先,WeakMap只接受对象作为键名(null除外),不接受其他类型的值作为键名。

const map = new WeakMap();
map.set(1, 2)
// TypeError: 1 is not an object!
map.set(Symbol(), 2)
// TypeError: Invalid value used as weak map key
map.set(null, 2)
// TypeError: Invalid value used as weak map key

上面代码中,如果将数值1和Symbol值作为 WeakMap 的键名,都会报错
其次,WeakMap的键名所指向的对象,不计入垃圾回收机制。

内容来自<a href="http://es6.ruanyifeng.com/#docs/set-map">官网</a>

相关文章

  • 封装高质量的代码

    封装星期,利用map数据结构优点:遍历更快 var weekMap = new Map();

  • Spring Cloud Alibaba Nacos详解

    注册中心 1.数据结构 Map

  • Go语言复合数据类型之map

    map概念 map是使用非常广泛且设计精妙的数据结构之一,在Java里面,我们使用最多的数据结构之一就是map。m...

  • 一些C++知识点

    问题: map和unordered_map区别与比较数据结构:map内部是红黑树,unordered_map内部是...

  • 基本数据结构-树

    基本数据结构 简介 基本数据结构有:array, list, queue, stack, map, tree, ...

  • vue.js Map 数据结构

    (一)Map 数据结构1.Map 数据结构,类似于对象,键值对的集合, 所有的数据都是唯一的,不会重复,每条数据都...

  • Java 数据结构之 Map 学习总结

    Java 数据结构之 Map 学习总结 今天总结学习一下键值映射关系Map。 先了解下Map Map 是一种把键对...

  • 数据结构之集合与映射(二)

    本篇主要内容:映射Map及其实现,Map的应用,Map与Set的对比 映射Map 数据结构里的所谓映射是键值对的数...

  • golang:map

    什么是map? map是一个可以存储key/value对的一种数据结构,map像slice一样是引用类型,map内...

  • go 数据结构 -- map&set

    映射 map 什么是 map map 是由一组键值对组成的抽象数据结构,并且键只会出现一次。 map 通常是用哈希...

网友评论

      本文标题:map数据结构

      本文链接:https://www.haomeiwen.com/subject/ljcfkxtx.html