数据结构---Set和Map

1.Set数据结构

Set本质上是一个没有重复数据的一种集合。Set本身也是一种数据结构的构造函数。

1.Set的初始化

var obj = new Set(参数);

上面生成一个Set的实例,obj是集合对象。

参数可以是数组,也可以是类数组(具有iterator接口的数据,如字符串)

var obj = [...new Set([1,3,3,3])]; // [1,3]
var obj = [...new Set(‘hellohello‘)]; // [‘h‘,‘e‘,‘l‘,‘o‘].join(‘‘)--‘helo‘

注意new Set()生成的对象是类数组,通过[...]转为数组。

??:[...new Set(数组或者类数组)] 可以去重!!!内部通过Object.js()比较。

但是所有的对象基本都不相同,该方法不适用于对象!

??将Set结构转为数组还有一个方法Array.from(set对象);Array.from可以将所有的类数组(含length)转为数组

let obj = Array.from(new Set([1,23,3,3]))

2.Set的属性和方法

Set的属性和方法都在prototype上,可以看作下面的形式

class Set{
    size0;
    constructor() {}
    add(value) { return this;} // 可以.add().add()
    delete(value){ return true;}//false
    has(value) { return true;} //false
    clear() {}
}

has可以用来判断

原文地址:https://www.cnblogs.com/lyraLee/p/11553167.html

时间: 2024-10-13 02:57:46

数据结构---Set和Map的相关文章

数据结构Set和Map

一.数据结构 Set 集合的基本概念:集合是由一组无序且唯一(即不能重复)的项组成的.这个数据结构使用了与有限集合相同的数学概念,应用在计算机的数据结构中.  特点:key 和 value 相同,没有重复的 value.ES6 提供了数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. 1. 如何创建一个 Set const s = new Set([1, 2, 3]); 2.属性 console.log(s.size); // 3 3.Set 类的方法 --set.add(v

高并发下的Java数据结构(List,Set,Map,Queue)

由于并行程序与串行程序的不同特点,适用于串行程序的一些数据结构可能无法直接在并发环境下正常工作,这是因为这些数据结构不是线程安全的.本节将着重介绍一些可以用于多线程环境的数据结构,如并发List.并发Set.并发Map等. 1.并发List Vector 或者 CopyOnWriteArrayList 是两个线程安全的List实现,ArrayList 不是线程安全的.因此,应该尽量避免在多线程环境中使用ArrayList.如果因为某些原因必须使用的,则需要使用Collections.synchr

javascript新增加的数据结构: Set Map WeakSet WeakMap

一.Set ES6提供新的数据结构Set,类似于Array,不过Array中的值可以重复,但是Set中的值不可以重复 声明: Set函数是一个构造函数 let set = new Set([1,2,3,2]) console.log((new Set([1,2,3,2])).size) // 3 console.log((new Set([NaN, NaN])).size) // 1 console.log((new Set([{}, {}])).size) // 2 console.log((

Map 和 WeakMap 数据结构

Map 和 WeakMap 是ES6 新增的数据结构 一.Map 它们本质与对象一样,都是键值对的集合,但是他们与 Object 对象主要的不同是,键可以是各种类型的数值,而Object 对象的键 只能是字符串类型或者Symbol类型值,Map 和 WeakMap 是更为完善的Hash结构. 1.对象 和 Map //----------- 对象 -------------- var keyObj = {} var dataObj = {} dataObj[keyObj] = '大家好' 虽然表

js ES6 Set和Map数据结构详解

这篇文章主要介绍了ES6学习笔记之Set和Map数据结构,结合实例形式详细分析了ECMAScript中基本数据结构Set和Map的常用属性与方法的功能.用法及相关注意事项,需要的朋友可以参考下 本文实例讲述了ES6学习笔记之Set和Map数据结构.分享给大家供大家参考,具体如下: 一.Set ES6提供了新的数据结构Set.类似于数组,只不过其成员值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. 1 . Set函数可以接受一个数组(或类似数组的对象)作为参数,用来

10.Set 和 Map 数据结构

Set 和 Map 数据结构 Set 和 Map 数据结构 Set 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 上面代码通过add方法向 Set 结构加入成

es6的Set和Map数据结构

Set 和 Map 数据结构 Set WeakSet Map WeakMap Set § ? 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 上面代码通过add

ES6 第十四节 map数据结构

ES6 第十四节 map数据结构 目录 ES6 第十四节 map数据结构 第十四节 map数据结构 Json和map格式的对比 map的增删查 取值get 删除delete 删除delete的特定值: size属性 查找是否存在has 清除所有元素clear 第十四节 map数据结构 在一些构建工具中是非常喜欢使用map这种数据结构来进行配置的,因为map是一种灵活,简单的适合一对一查找的数据结构. Json和map格式的对比 map的效率和灵活性更好 先来写一个JSON,这里我们用对象进行模拟

Go 多线程使用Map

最近的项目中用到了GO自带的Map用于存储临时数据,且此Map只增加不删除,主要有两个线程会对其操作.临时数据结构如下 Var Map map[string]UsrStuLock 1:线程一周期性的遍历此Map,并有可能修改其值 2:线程二随机时间被调用,并向Map中增加数据 因为涉及多线程,所以需要配合锁.对线程一和线程二的优先级进行讨论 情况一:如果线程二的优先级没有线程一高,那么处理方式如下: 线程一: 加锁 遍历处理 解锁 线程二: 加锁 添加元素 解锁 那么在Map元素数量较多时,就有