美文网首页
惊呆面试官的回答:HashMap和TreeMap的区别

惊呆面试官的回答:HashMap和TreeMap的区别

作者: 小二上酒8 | 来源:发表于2022-09-13 09:44 被阅读0次

1、两者区别

我们知道不管是HashMap还是TreeMap,都是通过对象来对对象进行索引的Map集合。我们把用来索引的对象叫做Key,而索引对应的对象叫做Value。这就是我们平时说的键值对。它们的类关系如图所示:

关于HashMap和TreeMap的区别,我从以下4个方面来分析:

1)数据结构方面

HashMap是基于哈希表+数组来实现的,而TreeMap是基于红黑树实现的。

使用HashMap需要键对象明确定义了hashCode()和equals()这两个方法,而且为了优化HashMap空间的使用,可以调整初始容量大小和扩容。

TreeMap没有大小设置选项,因为,红黑树结构总是处于平衡状态。

2)效率方面

HashMap比TreeMap的性能更高。

HashMap的时间复杂度是O(1),它是通过哈希函数计算的哈希地址。

而TreeMap主要是保证数据平衡,时间复杂度是O(log2 n)。

3)线程安全方面

HashMap和TreeMap都是非线程安全的。

如果在多线程并发情况下建议使用ConcurrentHashMap;

如果既要保证线程安全又要保证顺序,可以使用 Collections.synchronizedMap()方法转化为线程安全的集合。

4)应用场景方面

HashMap是无序的,而TreeMap是有序的。

TreeMap适用于按自然顺序或自定义顺序遍历键的场景。

HashMap适用于在Map中插入、删除和定位元素。

日常开发建议多使用HashMap,只有在需要排序的时候才使用TreeMap。

2、总结

最后,我把HashMap和TreeMap的更多详细区别,都整理在这张表中了,需要的小伙伴可以在我的个人主页中获取。


好了,以上就是我对HashMap和TreeMap的理解。

相关文章

  • map

    HashMap和LinkedHashMap的区别 HashMap,LinkedHashMap,TreeMap都属于...

  • Java集合类-TreeMap

    TreeMap和HashMap的区别和共同点 TreeMap 简介 TreeMap 是一个有序的key-value...

  • 深入理解HashMap和TreeMap的区别

    深入理解HashMap和TreeMap的区别 简介 HashMap和TreeMap是Map家族中非常常用的两个类,...

  • Java 面试题整理

    [toc] Java 集合 1. HashMap和TreeMap的区别 HashMap:基于哈希表实现。数组方式存...

  • Java之Map家族

    HashMap的详解LinkedHashMap的介绍TreeMap的介绍HashTable与HashMap的区别C...

  • HashMap,LinkedHashMap和TreeMap的区别

    Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复会覆盖),但允许值重复。 1. HashMap Ha...

  • 被虐的美团面试

    1、介绍项目,实现的过程 2、hashmap与treemap的区别 3、hashmap中的key与hashcode...

  • TreeMap In Java

    TreeMap Java里的treemap和hashmap类似,都是键值对的存储结构,但是hashmap存储数据不...

  • java基础知识6-map

    1.map类图 2.hashtable,hashmap,treemap区别 hashtable线程安全,key和v...

  • HashMap、HashTable、LinkedHashMap、

    面试官:请说一下HashMap和HashTable的区别?我:额...我只用过HashMap。面试官:好,回去等消...

网友评论

      本文标题:惊呆面试官的回答:HashMap和TreeMap的区别

      本文链接:https://www.haomeiwen.com/subject/qopkortx.html