关于hashmap和treemap的区别

关于hashmap和treemap的区别

波波老师好,关于本章中讲的hashmap和treemap,还有hashset和treeset。我看了您的这个回答:
https://class.imooc.com/course/qadetail/261694
现在越来越迷糊了:都是叫做映射,treemap是一对一的映射,但是这一章讲的映射中,是多对一的映射,多个key可能对应一个value。都叫映射,除了底层实现不一样,在应用上,有哪些不同的场景嘛?想看看典型的例子。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

映射就是一对一的。hashmap 所谓的一对多是内部的具体实现,这个具体实现对用户是不可见的。用户是不知道内部有一对多的关系的。实际上,我们所解决的“哈希冲突”,就是在将这个“一对多”的内部存储结构转变成了用户看到的“一对一”的映射。


这就像优先队列的内部是一棵树,但是这个内部实现对用户是不可见的。用户不需要知道其内部是一棵树。只需要知道对于优先队列,可以入队元素,也可以出队元素,出队的顺序是按照优先级排序的,就够了。


treemap 和 hashmap 最大的区别是 treemap 具有有序性。所以你可以按照顺序遍历 treemap 中的所有键,而 hashmap 不能。我们可以很快的选择 treemap 中对于某一个键,比这个键更大的映射或者更小的映射,但是 hashmap 没有这个能力。


整体在应用上,对于现代系统,基本完全可以默认先使用 hashmap,在发现自己的应用有“有序性”的需求的时候,再转而使用 treemap。


继续加油!:)

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2603    人
  • 解答问题       1096    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码