永发信息网

java中map有哪几种实现方式,并且比较异同

答案:2  悬赏:40  手机版
解决时间 2021-03-31 06:00
java中map有哪几种实现方式,并且比较异同
最佳答案
Map是一种把键对象和值对象进行关联的容器,而一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射。对于键对象来说,像Set 一样,一个Map容器中的键对象不允许重复,这是为了保持查找结果的一致性;如果有两个键对象一样,那你想得到那个键对象所对应的值对象时就有问题了,可 能你得到的并不是你想的那个值对象,结果会造成混乱,所以键的唯一性很重要,也是符合集合的性质的。当然在使用过程中,某个键所对应的值对象可能会发生变 化,这时会按照最后一次修改的值对象与键对应。对于值对象则没有唯一性的要求。你可以将任意多个键都映射到一个值对象上,这不会发生任何问题(不过对你的 使用却可能会造成不便,你不知道你得到的到底是那一个键所对应的值对象)。
Map有两种比较常用的实现:HashMap和TreeMap,WeakMap。HashMap 也用到了哈希码的算法,以便快速查找一个键,TreeMap则是对键按序存放,因此它便有一些扩展的方法,比如firstKey(),lastKey() 等,你还可以从TreeMap中指定一个范围以取得其子Map。键和值的关联很简单,用pub(Object key,Object value)方法即可将一个键与一个值对象相关联。用get(Object key)可得到与此key对象所对应的值对象,WeakMap这个用于内存自动释放的。
全部回答
官方的非官方的Map事先有好几百个(hibernate、spring、apache等都有实现)。官方的主要用到的就三大类:HashMap(最常见的,内部无序的)、TreeMap(排过序的)及WeakMap(这个用于内存自动释放的);还有一类是多线程时使用的并发Map。
如需查看具体Map子类。装个Eclipse,ctrl+shit+t输入Map后,在Map的class名那里按ctrl+T可以查看到Map所有的实现类。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
广东紫苏炒田螺的做法步骤图,怎么做好吃
灯泡的制作
aimingdownthesight指的是开镜还是不开镜?
1台15吨的燃煤蒸汽锅炉大约一年SO2的排放量是
选字填空改什么换什么
凉拌鱼的家常做法是什么?
听别人说PS可以在网上帮别人p图来挣钱,怎么
园通快递地址在哪,我要去那里办事,
巫师2如何导入一代存档
昜字和易字能通用吗
除了斗鱼油条开挂,还有哪些主播也在开挂
个级数的读法与万级数的读法不完全相同______
阿里巴巴诚信通的关键词自然搜索排名怎么做,
建筑学,城市规划和景观学有哪些区别
96年属鼠和95属猪和不
推荐资讯
王者荣耀2017暑期神秘商店什么时候开
什么是冷压芝麻油
惟恐不及的意思
みなさん、おはようございます!我是个20岁的
中国电信3g上网卡如何上网进行激活??
如何使用maven 管理两个工程
斗湖鱼胶大的好还是小的好
凌源“龙回首大酒店”是几星的?
想问一下各位大佬们,宁大研究生有没有免修英
冬天竹子是绿色的吗?
写分录时 库存商品和商品采购怎么区分?
真钱斗牛在这应该是没事的吧。拜托各位了 3Q
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?