中易网

请问java中HashMap是怎么实现的,还有treeMap的实现原理是红黑树,请解释一下红黑树

答案:2  悬赏:40  
解决时间 2021-03-24 14:43
请问java中HashMap是怎么实现的,还有treeMap的实现原理是红黑树,请解释一下红黑树
最佳答案
参考资料的网页上有比较的代码,你可以仔细看下~~~

java中HashMap,LinkedHashMap,TreeMap,HashTable的区别
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。
Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。
Hashtable与 HashMap类似,它继承自Dictionary类,不同的是:它不允许记录的键或者值为空;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了 Hashtable在写入时会比较慢。
LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.也可以在构造时用带参数,按照应用次数排序。在遍历的时候会比HashMap慢,不过有种情况例外,当HashMap容量很大,实际数据较少时,遍历起来可能会比LinkedHashMap慢,因为LinkedHashMap的遍历速度只和实际数据有关,和容量无关,而HashMap的遍历速度和他的容量有关。
TreeMap实现SortMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。

一般情况下,我们用的最多的是HashMap,HashMap里面存入的键值对在取出的时候是随机的,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。在Map 中插入、删除和定位元素,HashMap 是最好的选择。
TreeMap取出来的是排序后的键值对。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。
LinkedHashMap 是HashMap的一个子类,如果需要输出的顺序和输入的相同,那么用LinkedHashMap可以实现,它还可以按读取顺序来排列,像连接池中可以应用。
全部回答
你好! 利用了哈希算法根据hashCode()来配置存储地址,根据hashCode()和equals()判断是否为相同元素. 我的回答你还满意吗~~
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
太阳能一出热水就显示低水位没水,是怎么回事
80天宝宝纯母乳大便金黄呈水样带点泡泡
“节能环保,低碳生活”是我们倡导的一种生活
谁知道插卡式电表漏洞啊,买电的那种
怎么才能把电子相册做成光盘然后在影碟机播放
企业所得税核定征收 税收优惠
晨星上看到的基金年度收益扣除管理费了吗
字母g开头的单词有自然 环境等相关意思的单词
硬盘对刻,完全覆盖.数据丢失还能找回吗?
广州到清远要坐多久车
谁告诉一下台州仙居的旅游景点有那些?具体门
怎样更改iphone得设置玩游戏不卡
浙江金华到内蒙古鄂尔多斯顺丰几天能到陆运
39分钟蹦床有氧燃脂健身操 mix11的音乐哪里有
求问ps3 4000型 如何网上下载游戏,如何操作
推荐资讯
男用网名开奔驰去翻薯女的用什么好 情侣网名
若两灯均不亮断路,电压表示数为不为0?
博乐市新房,二手房房价多少,什么价位比较合
比亚迪秦前左车门灭车后打不开怎么回事
七星彩4码同上1比多少
导致孕产妇死亡的主要因素是什么?
求助:4G网络下不能接打电话
为什么电脑能看到的WiFi,手机却看不到而且也
电信宽带手机卡促销活动
监控线路跳闸
我在中关村买的苹果手机配件全是假的而且没有
只吹两个风扇充两个手机,开一个路由器,晚上
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?