Java中HashMap和TreeMap的区别深入理解

 我来答
匿名用户
2016-01-06
展开全部
HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。
HashMap 非线程安全 TreeMap 非线程安全
线程安全
在Java里,线程安全一般体现在两个方面:
1、多个thread对同一个java实例的访问(read和modify)不会相互干扰,它主要体现在关键字synchronized。如ArrayList和Vector,HashMap和Hashtable
(后者每个方法前都有synchronized关键字)。如果你在interator一个List对象时,其它线程remove一个element,问题就出现了。
2、每个线程都有自己的字段,而不会在多个线程之间共享。它主要体现在java.lang.ThreadLocal类,而没有Java关键字支持,如像static、transient那样。
1.AbstractMap抽象类和SortedMap接口
QQMSD8
2016-01-14 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部

java中的Map是个key-valus形式存储的健值对接口。Map是个接口,因此不能实例化,不同的子类有不同的实现方式。

  1. HashMap  无序的,通过hash算法来(散列存储)。

  2. Hashtable 无序的,通过hash算法来(散列存储),与HashMap不同的是Hashtable 是同步的(线程安全的)。

  3. LinkedHashMap 有序的,通过双向链表来存储数据。

  4. TreeMap 排序的,通过Key来排序,排序规则会调用key的compareTo方法来计算。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笑吟林花落
2016-01-03 · TA获得超过8945个赞
知道大有可为答主
回答量:1423
采纳率:0%
帮助的人:1496万
展开全部
Hash 是 hash 散列算法。这个不排序的。 Tree 是红黑树的算法。这个有排序的,要求放进去的东西要实现 Comparable 接口或我们提供一个 Comparator。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式