Set 是 JavaScript 中存储唯一值的内置对象,自动去重且对 NaN 和 +0/-0 有特殊处理;支持 add、has、delete 等操作,可与数组互转实现快速去重,遍历方式包括 for...of、forEach 及 keys/values/entries。
Set 是 JavaScript 中用于存储唯一值的内置对象,它自动确保所有元素互不重复,无论原始数据类型是基本类型还是引用类型(对引用类型按内存地址判断)。
Set 的核心特性:自动去重
Set 在添加值时会用严格相等(
)比较,但对
有特殊处理——它认为多个
是相等的,因此只保留一个;而
和
在 Set 中被视为相同值(符合 IEEE 754 规范)。
字符串、数字、布尔值等基本类型:值相同即视为重复
对象、数组、函数等引用类型:只有同一引用(指向同一内存地址)才算重复
→
(数字 1 和字符串 '1' 不冲突)
常用操作方法
Set 提供简洁的 API 管理唯一值:
:添加一个值,返回 Set 本身(可链式调用)
:检查是否包含某值,返回布尔值
:删除指定值,返回是否删除成功
:清空所有值
:获取当前元素个数(不是方法,是属性)
与数组互转:快速实现去重
利用 Set 的唯一性,可以一行代码去除数组重复项:
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
立即学习
“
Java免费学习笔记(深入)
”;
数组 → Set → 数组:
或
Set → 数组:
或
注意:Set 本身不支持索引访问(如
),需转为数组再操作
遍历 Set 的几种方式
Set 是
可迭代对象
,支持多种遍历语法:
:按插入顺序遍历值(
)
:类似数组,回调参数为
(前两个参数相同)
、
、
:都可用,但
和
行为一致(因为 Set 只有值,没有键)
===NaNNaN+0-0new Set([1, 1, 2, '2', '2']){1, 2, '2'}add(value)has(value)delete(value)clear()size[...new Set([1, 2, 2, 3])]Array.from(new Set(arr))Array.from(mySet)[...mySet]set[0]for...offor (const v of mySet) { ... }forEach()(value, value, set)keys()values()entries()keys()values()