map数据结构

数据结构—Map集合 数据结构,hashMap 阅读详情

一、概述

  1. map数据类型是Es6新增的一种常用的引用数据类型
  2. 他与Array和Object不同,他是键值对集合

二、map的使用

1. 定义

先定义再赋值

let mapInfo = new Map()
mapInfo.set(name,"小靳靳")
定义时就赋值
// new Map([ [key,value] , [key,value] ]) kay是属性,value是属性值
let mapInfo  = new Map([ [name,'小靳靳'], ["age",'25'],["sex","男"]])  

2. set()

mapInfo.set("name",'我修改了')

 注 : 连续设置就会被覆盖掉之前设置的内容

3. get()

通过这个方法来获取对应的值,如果获取不存在的属性,返回undefined。

4. has()

查询键在实例中是否存在,返回的是布尔值

5. delete()

删除map实例中的键,删除不存在的键返回false

6. clear()

let mapInfo  = new Map([ ["name",'小靳靳'], ["age",'25'],["sex","男"]])
mapInfo.clear() //清空map实例的数据

7. forEach()

将map实例遍历,参数一:键值,参数二:键名,参数三:map实例

和数组的分开,map不是数组,他是Object类型

mapInfo instanceof Object //true

let mapInfo  = new Map([ ["name",'小靳靳'], ["age",'25'],["sex","男"]])
mapInfo.forEach((value,key,map)=>{
    console.log(value,key,map)
 //小靳靳,name,Map(3) {'name' => '小靳靳', 'age' => '25', 'sex' => '男'}
})

8. size属性

获取个数

let mapInfo  = new Map([ ["name",'小靳靳'], ["age",'25'],["sex","男"]])
mapInfo.size // 3

 三、map和Object区别

此次我们来详细的讲解一下两者的区别

首先先了解Object

  • 声明

Object也是我们接触js最常用的一种引用数据类型,可用于存键值对的集合 

let obj = {
    name : '小靳靳',
    age : '28',
    sex : '男'
}

 

 map 的声明 => new Map()


  • 两者的不同点
  • 键类型

Object  一般键的类型都是串,如果不是,也会转成串

const obj1 = {
	name: "小金金"
}
obj1["sex"] = "男"
obj1[[1, 2]] = 'arr' //会转成字符串
obj1[{"name" :'obj'}]  = 'obj' //特殊情况以[Object,Object]输出
obj1[1] = 1
obj1['2'] = 2  //不管是number还是字符串,最后都会转成字符串
console.log(obj1) 
//{1: 1, 2: 2, name: '小金金', sex: '男', 1,2: 'arr', [object Object]: 'obj'}

Map 键可以根据自己的类型进行定义,包括对象\数组\函数\等,他不会想上面进行类型转换

let map = new Map()
//key和value可以是function\obj\string\number\array
map.set(66,66)
map.set("str","字符串")
map.set([1,2],"arr")
map.set([2,3],[2,3])
map.set({"name":"小靳靳"},"obj")
map.set({"name":"小靳靳1"},{"name":"小靳靳1"})
map.set(function foo(){},{"name":"小靳靳1"})

  •  键顺序

Object  键是无顺序的,不会按我们所定义的顺序进行存储

map  键是有顺序的,我们怎么定义的,他会按照我们定义的顺序输出

//Object
const obj = {
    4:4,
    '3':'3',
    2:2,
    1:1,
}
console.log(obj,Object.keys(obj))
//{1: 1, 2: 2, 3: '3', 4: 4}
//['1', '2', '3', '4']

//map
let map = new Map()
map.set(4,4)
map.set(3,3)
map.set(2,2)
map.set(1,1)
console.log(map,map.keys())

// Map(4) {4 => 4, 3 => 3, 2 => 2, 1 => 1}
// [[Entries]]
// 0: {4 => 4}
// 1: {3 => 3}
// 2: {2 => 2}
// 3: {1 => 1}
// size: 4
// [[Prototype]]: Map
  •  键的个数

Object  个数我们需要通过Object自带的key方法或者for in来计算

Map  有自己的size属性,直接去访问

//Object
const obj = {"name" : "小靳靳","age":"25","sex":"男"}
console.log(Object.keys(obj).length) // 3
let count = 0
for (const i in obj) {
  num++
}
console.log(num) // 3

//map
const map = new Map()
map.set("name","小靳靳")
map.set("age", "25")
map.set("sex", "男")
console.log(map.size) // 3

 

Cadence Virtuoso里搞定斩波运放AC仿真:PSS+PAC保姆级设置避坑指南 然而,当工程师们尝试在Cadence Virtuoso环境中对这种特殊结构进行AC特性分析时,往往会遇到传统AC仿真方法失效的困境——这正是PSS(Periodic Steady-State)与PAC(Periodic AC)仿真组合大显身手的场景。实际项目中我们常采用"先快后精"的两步法:先用快速设置确认大体趋势,再针对关键频段进行精细仿真。例如某次设计迭代中,将harmonics从10增加到20后,发现在1MHz处的相位裕度估算误差达15°,这解释了之前样机测试时的振荡问题。 阅读详情

相关推荐

海思HiMPP开发避坑指南:MMZ内存与系统内存傻傻分不清?一个例子讲透

本文深入解析海思HiMPP开发中MMZ内存与系统内存的关键差异与应用场景,帮助开发者避免常见的内存混淆问题。通过实际案例和性能对比,详细介绍了MMZ内存的特性和优化策略,提升多媒体处理效率。

weixin_30772105的博客 468

数据结构之Map基础入门与详解

# 【1】概念介绍 Map用于保存具有**映射关系**的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value。key和value都可以是任何引用类型的数据。`Map的Key值为set,不允许重复,即同一个Map对象的任何两个key通过equals方法比较结果总是返回false。` **关于Map,我们要从代码复用的角度去理解** java是先实现了Map,然后通过包装了一个所有value都为null的Map就实现了Set集合。 Map的这些实现类

小小默:进无止境 1万+

基于 LSTM 的船舶轨迹预测,单步预测

基于 LSTM 的船舶轨迹预测,单步预测

fyuhao的博客 1万+

Map数据结构详解

Map数据结构详解:Map的创建、与普通数据结构的区别、Map的常用方法、Map参数、Map的遍历方法、Map的数据结构转换。

分享互联网的有趣知识~ 5332

YOLOv8中Bottleneck模块详解

Bottleneck 模块在YOLOv8中的作用是进行特征提取和增强,是网络中的核心构建模块之一。它的主要功能是通过卷积操作来处理输入特征图,并在适当情况下应用残差连接,使得信息能够有效地通过网络层进行传播

zzzyyy8的博客 8061

JFET放大电路实例设计仿真

参照《晶体管电路设计》中的例子 JFET 2SK184 JFET 2SK184 数据手册如下 电路设计 共源放大 步骤:1、静态工作点 2N4416 1ma 2、RD和RS A=5 5:1 RS 2V /1m=2k RD 5k 3、偏压VG 根据传输特性 VGS-ID vgs=-0.7 vg=2-0.7=1.3 400k^2/50k...

f的博客 7441

JavaScript Map数据类型

详细描述了 JavaScript 的 Map 数据类型

Jackson_Mseven的博客 4297

实战指南:从零搭建ROS2 + Cartographer 2D激光SLAM系统

本文详细介绍了如何从零开始搭建ROS2与Cartographer结合的2D激光SLAM系统,涵盖环境准备、激光雷达驱动配置、Cartographer安装与参数调优等关键步骤。通过实战案例和常见问题解决方案,帮助开发者快速掌握激光雷达建图技术,提升机器人自主导航能力。

weixin_29062255的博客 403

数据结构之Map

一、Map的基本概念 Map是一个接口类,该类没有继承自Collection,该类中存储的是<K,V>结构的键值对,并且K一定是唯一的,不能重复. 二、<K,V>结构的键值对 Map.Entry<K, V> 是Map内部实现的用来存放<key, value>键值对映射关系的内部类,该内部类中主要提供了<key, value>的获取,value的设置以及Key的比较方式。 方法名 作用 K getKey() 返回entry中的key

weixin_45984250的博客 2280

2024-12月js逆向案例-sensor-data之vmp字段之akamai_2/3.0-(下)

akamai2/3的vmp字段逆向分析

十一姐的博客 3146

医图论文 Arxiv‘24 | 自我先验引导的 Mamba-UNet 网络在医学图像超分辨率中的应用

作者提出了一种自我先验引导的 Mamba-UNet 网络(简称 SMamba-UNet)用于医学图像超分辨率。现有方法主要基于卷积神经网络(CNNs)或 Transformer。基于 CNN 的方法无法捕捉长距离依赖关系,而基于 Transformer 的方法由于其二阶计算复杂度,面临沉重的计算挑战。最近,状态空间模型(SSMs)尤其是 Mamba 出现了,它能够以线性计算复杂度建模长距离依赖。

小白学视觉 262

Map数据结构

m1.forEach((item,index)=>{ //item 是值 index是键(索引)[{a:1},"大连"] //{Object => "大连"}console.log(m2.get(o));//[ { a: 1 }, '大连' ]//[ { a: 1 }, '大连' ]} //kerwin 100 大连。m2.set(o,"大连")

2401_88900643的博客 1440

ESP32-C3入门教程 WiFi篇①——WiFi Scan 扫描附近AP无线热点 | 堵塞等待扫描结果,回调事件通知扫描结果

文章目录一、快速运行二、运行效果三、程序流畅四、关键函数4.1 扫描所有有效的AP4.2 获取上次扫描中找到的AP列表4.3 获取上次扫描中找到的AP数 一、快速运行 示例项目中,选择WiFi—>scan menuconfig配置ESP32C3-Specific—>Rec 0 芯片选择ESP32-C3(Built-in USB JTAG) 快速运行ESP-IDF Build, Flash and Monitor(左下角) 二、运行效果 三、程序流畅 esp_netif_init,初始

5417

数据结构之map

而pair<int,int>定义了kv也就是键值对的数据类型是pair,C++中的pair类型会将两个不同的值组合成一个单元,常用于存储键值对,创建pair的时候,也必须提供两个类型名,比如上面的pair对象,两个值的类型都是int,在使用时通过first和second成员来访问pair中的第一个和第二个元素,它的first成员存储键,而second成员存储值。的key值存储是无序的,底层实现为哈希表,查找速度更快,如果不需要排序而只是快速查找键对应的值,可以考虑使用。常量通常用大写字母表示。

m0_53506460的博客 725

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Map 数据结构

Set 是一种叫【字典(是一些元素的集合,以 [ 键,值 ] 的形式储存)】的数据结构。keys() 返回键名。values() 返回键值。使用运算扩展符 【...】

随手记 724

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数据结构Map

map是ES提供的一种字典数据结构 字典结构——用来存储不重复key的hash结构。不同于集合(set)的是,字典使用的是键值对的形式来存储数据 JavaScript对象(object:{})只能用字符串来当key,这对使用带来了不便,为了解决这个问题,ES6提供了map数据结构。其类似于对象,也是键值对的集合,但“key”的范围不仅限于字符串,而是各种类型的值都可以当做key。也就是说,ob...

CodeP1G的博客 866

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数据结构-Map

map 是一种典型的字典类型的数据结构 字典: 是用来存储不重复key的Hash结构(对象就是字典类型的数据结构)。不同于集合(Set)的是,字典用的是[键,值]的形式来储存数据的。 JS的对象(Object:{})只能用字符串当作键。这给他的使用带来的很大的限制 为了解决这个问题,ES6提供了Map数据结构,它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键,也就是说,Object结构提供了“字符串-值”的对应,Map结构提供了“值-值”的对应,是一种更完善

qq_44277696的博客 4253

map,js Map数据结构,Map数据结构,es6中的Map数据结构,js中的hash表达

map,js Map数据结构,Map数据结构,es6中的Map数据结构

imkaifan的博客 1674

【数据结构】Map与Set结构详解

本文从底层Map的内外双接口结构开始分析,从其结构出发讲解了Map具体是如何管理存储对象的,接着深入Map的存储结构,讲解了Map的基本操作节点-包装对象节点的存储特点 以及节点的数据组织结构-数组/红黑树,讲解了Set复用Map的关系、整理了Map与Set常用方法的归纳使用

Brookty的博客 2474

golang数据结构map

golang 数据结构之map 介绍 map是hash table数据结构,它支持快速的查找、增加和删除。 定义和声明 map[keyType]ValueType 其中 keyType 必须是可比较的数据类型 (golang官网说明),比如 布尔类型(bool)、数值类型(int, uint, float等)、string、指针(pointer)、通道(channel)、接口(interface)或者包含以上基础类型的 struct、arrays。 但是不支持 切片(slices)、map、函数(func

weixin_44527226的博客 396

【ES6】Map数据结构

文章目录一、Map的含义和基本用法二、实例的属性和操作方法三、遍历方法 一、Map的含义和基本用法        JavaScript 的对象( Object )本质上是键值对的集合( Hash 结构),但是只能用字符串作为键。这给它的使用带来了很大的限制。为了解决这个问题,提供了Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。    .

weixin_60297362的博客 2942

ES6之Map数据结构

TOC/TOCES6(ECMAScript 2015)引入了两种新的数据结构:Set和Map,它们为JavaScript开发者提供了更强大的数据处理能力。

BradenHan的专栏 2112

java map 数据结构_Map数据结构以及Map相关方法的底层实现原理

Map数据结构Map也是容器的一种,那么我们以前看到的没一种容器,都有响应的数据结构,例如数组是一组连续的存储空间,链表是无序的,包含指针域和值域的容器。这里我们要介绍的Map拥有自己独特的数据结构,Map的每一个元素叫做键值对,所谓键值对其实就是 “键” 和 “值” 组成的一对Map的每一个元素由两部分组成,分别是key(键)和 value(值)容器是用来装东西的,那么容器取得操作中肯定就少不...

weixin_28675661的博客 799

数据结构之详解【Map和Set】

1.Map是一个接口,不能直接实例化对象(要实例化对象可以实现类TreeMap或HashMap) 2.Map中存放键值对的key是唯一的,value是可以重复一样的 3.Map中key可以全部分离开,存储在Set中去进行访问(因为key不可以重复) 4.Map中value可以全部分离开,存储在Collection的任何一个子集合中(value可以重复) 5.Map中key不能直接修改,如果必须修改就要先删除key,在进行重新插入 6.HashMap的存储 是根据底层的哈希函数和key,去找对应的位...

m0_58761900的博客 2307

数据结构————map,set详解

详解map,set

2301_79083481的博客 3048
上一篇: git操作知识总结
下一篇: css伪类选择器
JSON_JSJ
博客等级 码龄5年 4粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_JSJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值