《数据结构》map和set

一.模型
我们首先明白一组模型:
1. key 模型 ,比如:
有一个英文词典,快速查找一个单词是否在词典中
快速查找某个名字在不在通讯录中
2. Key-Value 模型 ,比如:
统计文件中每个单词出现的次数,统计结果是每个单词都有与其对应的次数: < 单词,单词出现的次数 >
梁山好汉的江湖绰号:每个好汉都有自己的江湖绰号
Map采用的就是 key- value模型,而set采用的是纯key模型

 

二.  关于 Map 的说明
2.1
Map 是一个接口类,该类没有继承自 Collection 该类中存储的是 <K,V> 结构的键值对,并且 K 一定是唯一的,不
能重复
2.2 关于 Map.Entry<K, V> 的说明
Map.Entry<K, V> Map 内部实现的用来存放 <key, value> 键值对映射关系的内部类 ,该内部类中主要提供了
<key, value> 的获取, value 的设置以及key的比较方式(由于我们无法在map中获取key的值,一般我们需要获取key的值时,我们一般选择使用map.entry)
注意: Map.Entry<K,V> 并没有提供设置 Key 的方法
2.3 Map 的常用方法说明
1. Map 是一个接口,不能直接实例化对象 ,如果 实例化对象只能实例化其实现类 TreeMap 或者 HashMap
2. Map 中存放键值对的 Key 是唯一的, value 是可以重复的
3. Map 中的 Key 可以全部分离出来,存储到 Set 来进行访问 ( 因为 Key 不能重复 )
4. Map 中的 value 可以全部分离出来, 存储在 Collection 的任何一个子集合中 (value 可能有重复 )
5. Map 中键值对的 Key 不能直接修改, value 可以修改,如果要修改 key ,只能先将该 key 删除掉,然后再 来进行
重新插入。
TreeSet和TreeMap的关系
  与HashSet完全类似,TreeSet里面绝大部分方法都市直接调用TreeMap方法来实现的。
相同点:
TreeMap和TreeSet都是非同步集合,因此他们不能在多线程之间共享,不过可以使用方法Collections.synchroinzedMap()来实现同步
运行速度都要比Hash集合慢,他们内部对元素的操作时间复杂度为O(logN),而HashMap/HashSet则为O(1)。
TreeMap和TreeSet都是有序的集合,也就是说他们存储的值都是拍好序的。
不同点:
最主要的区别就是TreeSet和TreeMap分别实现Set和Map接口
TreeSet只存储一个对象,而TreeMap存储两个对象Key和Value(仅仅key对象有序)
TreeSet中不能有重复对象,而TreeMap中可以存在
TreeMap的底层采用红黑树的实现,完成数据有序的插入,排序。
注意:
1. Map 是一个接口,不能直接实例化对象 ,如果 要实例化对象只能实例化其实现类 TreeMap 或者 HashMap
2. Map 中存放键值对的 Key 是唯一的, value 是可以重复的
3. Map 中的 Key 可以全部分离出来,存储到 Set 来进行访问 ( 因为 Key 不能重复 )
4. Map 中的 value 可以全部分离出来,存储在 Collection 的任何一个子集合中 (value 可能有重复 )
5. Map 中键值对的 Key 不能直接修改, value 可以修改,如果要修改 key ,只能先将该 key 删除掉,然后再来进行
重新插入。
6. TreeMap HashMap 的区别
3. Set 的说明
3.1 常见方法说明
注意:
1. Set 是继承自 Collection 的一个接口类
2. Set 中只存储了 key ,并且要求 key 一定要唯一
3. Set 的底层是使用 Map 来实现的, 其使用 key Object 的一个默认对象作为键值对插入到 Map 中的
4. Set 最大的功能就是对集合中的元素进行去重
5. 实现 Set 接口的常用类有 TreeSet HashSet ,还有一个 LinkedHashSet LinkedHashSet 是在 HashSet 的基础
上维护了一个双向链表来记录元素的插入次序。
6. Set 中的 Key 不能修改,如果要修改,先将原来的删除掉,然后再重新插入
7. Set 中不能插入 null key
8. TreeSet HashSet 的区别
六子干侧开
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
笔记11-数据结构MAPSET
12-14
笔记11-数据结构MAPSET
ES6学习笔记之SetMap数据结构详解
08-30
主要介绍了ES6学习笔记之SetMap数据结构,结合实例形式详细分析了ECMAScript中基本数据结构SetMap的常用属性与方法的功能、用法及相关注意事项,需要的朋友可以参考下
Map的循环遍历,修改,删除
qq_43325216的博客
08-27 7431
Map的循环遍历,修改,删除
【Java】Map遍历key-value的四种方法
热门推荐
dengmsjava的博客
03-20 2万+
Map遍历key-value的四种方法 (1)先用keySet()取出所有key值,再取出对应value——增强for循环遍历 (2)先用keySet()取出所有key值,再取出对应value——使用迭代器遍历 (3)通过entrySet来获取key-value——增强for循环遍历 (4)通过entrySet来获取key-value——使用迭代器遍历
Map的value,如何去修改
w33_haa的博客
06-28 6259
假设这样一个情况,我们对一个hashmap进行get操作,得到其value值temp,然后对temp进行修改,这个hashmap中的value值,是否跟着也发生了变化。 public V get(Object key) { Node<K,V> e; return (e = getNode(hash(key), key)) == null ? null : e.value; } 首先看源码,直接返回了一个新定义的e的e.value这个值, 有如下测试结...
MAP】插入、修改、删除、查找
Masker
05-09 1627
插入: ​ m.insert(map<int,string>::value_type(1,"a"));//map容器,键值类型,value_type都不能少 //m.insert(make_pair<int,string>(1,"a")); //同样效果 ​ 修改: ​ m.insert(map<int,string>::value_typ...
数据结构之详解【MapSet
m0_58761900的博客
07-28 1727
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,去找对应的位...
数据结构MapSet
拼命阿紫冲冲冲!
03-12 1575
本期主要讲解: 1、MapSet的概念 2、MapSet 使用的模型 3、Map 3.1 Map.Entry 简介 3.2 Map的常用方法 4、Set 4.1 SetMap 的区别 4.2 Set 的常用方法
数据结构MapSet总结
Poem_coder的博客
04-23 2481
一、概念与模型 1.概念:Mapset是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有: ①直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢 ②二分查找,时间复杂度为O(logN),但搜索前必须要求序列是有序的 。上述排序比较适合静态类型的查找,即一般不会对区间进行插入和删除操作了,而现实中的查找比如: ①根据姓名查询考试成绩 ②通讯录,即根据姓名查询联系方式 ③不重复集合,即需要先搜索关键字是否已经在集合中,可能在查找时进行一些插入和删除的
数据结构 --- 【MapSet】详解
Lucky_mzc的博客
03-22 1522
本章目标 掌握 Map/Set 及实际实现类 HashMap/TreeMap/HashSet/TreeSet 的使用 掌握 TreeMap 和 TreeSet 背后的数据结构搜索树的原理和简单实现 掌握 HashMap 和 HashSet 背后的数据结构哈希表的原理和简单实现 MapSet 的概念 MapSet 是一种专门用来进行搜索的关联式容器或者数据结构; 关联式容是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数.
【Java 数据结构MapSet的介绍
程序猿教你打篮球的博客
01-14 5795
本期主要讲解: 1、MapSet 的概念 2、模型 3、Map 的学习 3.1 关于 Map.Entry 3.2 Map 的常用方法 4、Set 的常用方法 5、 MapSet 的注意点
随笔-深入学习ES6的MapSet(底层数据结构层面)
伏城之外的博客
12-08 1820
在学习ES6的MapSet之前,我总是有意无意地将它们和我之前学习的Java集合类中的MapSet进行对比参照,有兴趣的同学可以去看下我之前总结的Java的MapSet (9条消息) Map集合之HashMap(一)_qfc_128220的博客-CSDN博客 我在网上找到的大部分关于ES6的MapSet的资料是关于它们的用法, 少料资料提及了性能, (9条消息) 前端集合删除对象_如何使用JavaScript Set集合更快地编写代码_weixin_39616674的博客-CSDN博客
ES6中SetMap数据结构Map与其它数据结构互相转换操作实例详解
10-17
主要介绍了ES6中SetMap数据结构Map与其它数据结构互相转换操作,结合实例形式详细分析了ES6中的SetMap数据结构的概念、原理、遍历、去重等操作,以及Map与其它数据结构互相转换操作,需要的朋友可以参考下
ES6新增数据类型setmap
01-20
数据结构:数据是具体的东西,类型是一个范围,结构(集合)是数据的不同组合方式 1、Set 1.1 Set的概念和声明 Set是一种数据的集合,类似于数组,使用内置构造函数方式声明 const s=new Set(); console.log(s);//...
详解ES6中的 Set Map 数据结构学习总结
10-17
主要介绍了详解ES6中的 Set Map 数据结构学习总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
插入排序和希尔排序详解
friendhan2005的博客
06-08 540
希尔排序详解,大家快来看!!!
二叉树顺序结构——堆的结构与实现
最新发布
qq3304968099的博客
06-10 861
二叉树顺序结构——堆的结构与源代码实现
数据结构和算法一轮
李青水的博客
06-08 882
数据结构第一轮复习
数据结构--栈和队列
code袁的博客
06-08 877
🦁作者简介:一名喜欢分享和记录学习的在校大学生💥个人主页code袁💥个人QQ🐯个人wechat:code8896栈是一种线性数据结构,具有后进先出(LIFO)的特点。栈可以简单地理解为一摞盘子,我们只能在盘子的顶部放入或取出盘子,不能在中间插入或者从底部取出盘子。队列是一种线性数据结构,具有先进先出(FIFO)的特点。队列可以简单地理解为排队,先到先得,后到后得。手动码字,如有错误,欢迎在评论区指正💬~你的支持就是我更新的最大动力💪~
js MapSet数据结构
07-27
JS中的MapSet是两种常用的数据结构Map是一种键值对的集合,其中每个键都是唯一的。可以通过键来访问和修改对应的值。Map可以使用任何类型的值作为键,包括基本类型和对象引用。Map的遍历顺序是按照插入顺序...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • HTTP协议:当下最主流的应用层协议之一,你确定不了解一下吗? 18982
  • 从暴力递归到动态规划(2)小乖,你也在为转移方程而烦恼吗? 15978
  • 【redis基础】哨兵 14353
  • 初始MyBatis,w字带你解MyBatis 13801
  • 【springboot项目开发】文件上传与下载 13745

分类专栏

  • mysql 1篇
  • springboot项目开发 3篇
  • 软件测试 2篇
  • 刷题日记-图论 2篇
  • 刷题日记-回溯 4篇
  • 刷题日记-链表 2篇
  • 刷题日记-bfs 1篇
  • redis 6篇
  • javaEE初阶 2篇
  • 数据结构 3篇

最新评论

  • 可能你已经刷了很多01背包的题,但是真的对01背包领悟透彻了吗?,看我这一篇,使君对01背包的理解更进一步【代码+图解+文字描述】

    Mikexin11: 前面递推公式好像写错了,应该是dp[i-1][j-w[i]],不是dp[i][j-w[i]]

  • selenium学习

    小目标胖三斤: 很实用

  • 【springboot项目开发】文件上传与下载

    Zainyu1234: 非常好的文章!!!表情包

  • 《软件测试开发》概念篇

    秩沅: 感谢博主输出高质量博客,语言简洁精准,内容全面

  • 《软件测试开发》概念篇

    stackY、: 大佬高质量好文,内容丰富,值得学习

大家在看

  • RabbitMQ学习总结 91
  • 通过CSS来控制HTML元素(element)的隐藏与显示
  • love2d 代码库(六)俄罗斯方块青春版 1222

最新文章

  • selenium学习
  • BeautifulSoup学习
  • deepface:实现人脸的识别和分析
2023年75篇
2022年26篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

六子干侧开

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

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

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

打赏作者

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

抵扣说明:

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

余额充值

深圳SEO优化公司聊城百度爱采购多少钱固原网站seo优化公司南通阿里店铺托管推荐陇南模板推广价格崇左百度竞价包年推广报价南平网站推广方案公司民治百度网站优化推荐潜江优秀网站设计坪地如何制作网站报价延边网站优化按天计费多少钱襄阳关键词按天计费仙桃百搜标王推荐阳江网站优化软件价格吴忠网站制作报价菏泽网站关键词优化公司临汾seo网站推广多少钱坑梓阿里店铺运营推荐株洲百姓网标王大运建设网站推荐平凉建网站泰州百度seo多少钱松原网络营销哪家好芜湖seo网站推广推荐襄阳网站优化软件哪家好滨州网站优化按天扣费多少钱中卫网络营销坪地百度网站优化公司四平建站多少钱亳州英文网站建设报价朔州seo报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化