当前位置: 首页 > news >正文

Set,Map,WakeSet,WakeMap

简介

Set、Map、WeakMap 和 WeakSet 是 ES6 引入的高级数据结构,它们的底层实现和特性与传统的对象和数组有显著差异

在这里插入图片描述

强弱引用了解: link

Set

  • ​Set对象 是一种用于存储 ​唯一值 的可迭代集合,可存储任意类型的值(原始值、对象引用等)。
  • 结构类似于数组
// 空 Set
const set1 = new Set();

// 通过可迭代对象(如数组)初始化
const set2 = new Set([1, 2, 3, 3]); // 结果为 {1, 2, 3}
const set3 = new Set("hello");     // 结果为 {'h', 'e', 'l', 'o'}

Map

  • Map 对象是一种用于存储 ​键值对 的可迭代集合,支持任意类型的键(原始值、对象引用等)。并保留插入顺序
  • 结构类似于对象
// 空 Map
const map1 = new Map();

// 通过键值对数组初始化
const map2 = new Map([
  ["name", "Alice"],
  [1, "one"],
  [{ id: 1 }, "object key"]
]);

​WeakSet

  • ​WeakSet 是一种 不可迭代性 集合类型,专用于存储对象的弱引用
  • 若存储的对象 在其他地方被垃圾回收,WeakSet 中的对应引用自动消失。
// 空 WeakSet
const weakSet = new WeakSet();

// 通过对象数组初始化(仅限对象)
const obj1 = { id: 1 }, obj2 = { id: 2 };
const weakSet = new WeakSet([obj1, obj2]);

WeakMap

  • ​WeakMap 是 不可迭代 键值对集合,以弱引用方式存储 对象作为键 的关联数据。
  • 当键对象被销毁后,对应的键值对会被自动移除。
// 空 WeakMap
const weakMap = new WeakMap();

// 通过键值对数组初始化(仅限对象键)
const key1 = { id: 1 }, key2 = { id: 2 };
const weakMap = new WeakMap([
  [key1, "value1"],
  [key2, { data: "value2" }]
]);

相关文章:

  • 虚拟pinctrl驱动
  • ZGC初步了解
  • 【小技巧】如何查看容器的启动参数
  • Java 大视界 -- Java 大数据在智能电网电力市场交易数据分析与策略制定中的关键作用(162)
  • C++中的搜索算法实现
  • Chapters 15 16:What Is Architecture?Independence_《clean architecture》notes
  • 百人会上的蔚小理与「来的刚刚好」的雷军
  • 关于参加CSP-J/S认证需符合年龄条件的公告(2025年起)
  • Python PDF解析利器:pdfplumber | AI应用开发
  • 【什么是机器学习——多项式逼近】
  • 多线程 - 线程安全 2 -- > 死锁问题
  • snort检测端口扫描工具
  • AI基础03-视频数据采集
  • SpringBoot 概述
  • Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型多变量回归预测
  • 算力100问☞第98问:算力鸿沟会加剧数字不平等吗?
  • 常用正则表达式-MAC 地址
  • 安卓的布局方式
  • 【MySQL基础】聚合函数从基础使用到高级分组过滤
  • 【今日半导体行业分析】2025年3月30日