TreeMap和HashMap的区别

2年前 (2022) 程序员胖胖胖虎阿
304 0 0

目录

1、区别

2、效率区别

3、相同点

总结:


1、区别

打开源码

TreeMap

TreeMap和HashMap的区别

TreeMap和HashMap的区别 TreeMap和HashMap的区别

 HashMap

TreeMap和HashMap的区别

我们可以看到 HashMap是直接实现了Map接口,而TreeMap则是实现了NavigableMap接口,而这个NavigableMap接口拓展了SortedMap接口,SortMap接口又拓展了Map接口。所以我们可以这样看

TreeMap和HashMap的区别

 从这就可以看出因为TreeMap实现了SortedMap接口所以说TreeMap是有序的,HashMap是无序的。

TreeMap中默认是根据键排序(升序),我们也可以通过重写comparaTo方法或是使用比较器了来更改排序规则。

2、效率区别

由名字我们就可以知道,TreeMap底层是由树(红黑树)实现的,而HashMap是由哈希桶实现的。由于哈希算法本身的优势,我们再进行增删查改的时候。HashMap的时间复杂度是O(1),是通过哈希函数计算的哈希地址。而我们的红黑树就不具有这样的优势时间复杂度是O(log2 n)。

3、相同点

两者都不是线性安全。

总结:

1、HashMap无序,TreeMap有序。

2、HashMap覆盖了equals()方法和hashcode()方法,这使得HashMap中两个相等的映射返回相同的哈希值;

TreeMap则是实现了SortedMap接口,使其有序。

3、HashMap的工作效率更高,而TreeMap则是基于树的增删查改。更推荐使用HashMap。

4、HashMap基于哈希桶实现,TreeMap是基于红黑树实现。

5、两者都不是线性安全的。

版权声明:程序员胖胖胖虎阿 发表于 2022年9月28日 上午4:08。
转载请注明:TreeMap和HashMap的区别 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...