ES6中的Set数据结构的常用方法和使用场景

简介: ES6中的Set数据结构的常用方法和使用场景

ES6中的Set数据结构
Set 是 ES6 中新增的数据结构,用于存储不重复的值,允许存储任何类型的唯一值。Set 的核心特点是值唯一性,类似数学中的集合。

常用方法

  1. add(value)
    添加值到Set中,如果值已存在则不会添加。

const set = new Set();
set.add(1); // Set {1}
1
2

  1. delete(value)
    删除指定值,返回布尔值,表示是否删除成功。

set.delete(1); // true
1

  1. has(value)
    检查值是否存在于Set中,返回布尔值。

set.has(1); // false
1

  1. clear()
    清空整个Set。

set.clear(); // Set {}
1

  1. size
    返回Set中的元素数量。

set.size; // 0
1

  1. forEach(callback)
    遍历Set,为每个值执行一次提供的回调函数。

let mySet = new Set([1, 2, 3, 4, 5]);

mySet.forEach(function(value, key) {
console.log('value: ' + value + ', key: ' + key);
});
1
2
3
4
5

  1. 迭代器方法
    keys() 和 values(): 返回包含集合中元素的迭代器(Set 的键和值相同)。
    entries(): 返回[value, value]格式的迭代器,适用于Map接口的兼容。
    for...of: 遍历Set中的每个值。
    let mySet = new Set([1, 2, 3, 4, 5]);

// 使用 .values()
for (let value of mySet.values()) {
console.log(value);
}

// 使用 .keys(),与 .values() 相同
for (let key of mySet.keys()) {
console.log(key);
}

// 使用 .entries()
for (let entry of mySet.entries()) {
console.log(entry); // 每个 entry 是一个 [value, value] 的数组
}
// 使用 for...of 循环来迭代其值
for (let value of mySet) {
console.log(value);
}

相关文章
|
2月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
46 3
|
16天前
|
Java Windows
IDEA不使用lombok,如何快速生成get和set方法
【11月更文挑战第10天】在 IntelliJ IDEA 中生成 `get` 和 `set` 方法有多种方式:通过菜单操作、使用快捷键或自定义模板。菜单操作包括选择“Code”菜单中的“Generate...”,快捷键为“Alt + Insert”。自定义模板可在“File”->“Settings”->“Editor”->“Code Style”->“Java”中设置。批量生成时,可多选变量一次性生成。
|
22天前
|
开发者
除了交集运算,Set 类型还可以用于哪些数据结构的操作?
【10月更文挑战第30天】`Set`类型在数据结构操作方面提供了丰富的功能和便利,能够帮助开发者更高效地处理各种数据集合相关的任务,提高代码的简洁性和性能。
|
2月前
|
Rust Java
set 方法是坏味道?
【10月更文挑战第19天】
28 5
|
2月前
|
存储 算法 Java
Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性
Java Set因其“无重复”特性在集合框架中独树一帜。本文解析了Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性,并提供了最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的hashCode()与equals()方法。
35 4
|
2月前
|
Java C++ 索引
让星星⭐月亮告诉你,LinkedList和ArrayList底层数据结构及方法源码说明
`LinkedList` 和 `ArrayList` 是 Java 中两种常见的列表实现。`LinkedList` 基于双向链表,适合频繁的插入和删除操作,但按索引访问元素效率较低。`ArrayList` 基于动态数组,支持快速随机访问,但在中间位置插入或删除元素时性能较差。两者均实现了 `List` 接口,`LinkedList` 还额外实现了 `Deque` 接口,提供了更多队列操作。
26 3
|
2月前
|
存储 算法 Java
数据结构与算法学习八:前缀(波兰)表达式、中缀表达式、后缀(逆波兰)表达式的学习,中缀转后缀的两个方法,逆波兰计算器的实现
前缀(波兰)表达式、中缀表达式和后缀(逆波兰)表达式的基本概念、计算机求值方法,以及如何将中缀表达式转换为后缀表达式,并提供了相应的Java代码实现和测试结果。
72 0
数据结构与算法学习八:前缀(波兰)表达式、中缀表达式、后缀(逆波兰)表达式的学习,中缀转后缀的两个方法,逆波兰计算器的实现
|
2月前
|
存储 编译器 C++
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
|
2月前
|
存储 算法 索引
HashMap底层数据结构及其增put删remove查get方法的代码实现原理
HashMap 是基于数组 + 链表 + 红黑树实现的高效键值对存储结构。默认初始容量为16,负载因子为0.75。当存储元素超过容量 * 负载因子时,会进行扩容。HashMap 使用哈希算法计算键的索引位置,通过链表或红黑树解决哈希冲突,确保高效存取。插入、获取和删除操作的时间复杂度接近 O(1)。
29 0
|
2月前
|
算法 Java C语言
【数据结构】后缀(逆波兰)表达式的计算以及中缀转后缀的方法
【数据结构】后缀(逆波兰)表达式的计算以及中缀转后缀的方法
43 0