HashMap和TreeMap的区别

Posted 明天的我

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HashMap和TreeMap的区别相关的知识,希望对你有一定的参考价值。

HashMap:数组方式存储key/value,线程非安全,允许null作为key和value,key不可以重复,value允许重复,不保证元素迭代顺序是按照插入时的顺序,key的hash值是先计算key的hashcode值,然后再进行计算,每次容量扩容会重新计算所以key的hash值,会消耗资源,要求key必须重写equals和hashcode方法

默认初始容量16,加载因子0.75,扩容为旧容量乘2,查找元素快,如果key一样则比较value,如果value不一样,则按照链表结构存储value,就是一个key后面有多个value;

TreeMap:基于红黑二叉树的NavigableMap的实现,线程非安全,不允许null,key不可以重复,value允许重复,存入TreeMap的元素应当实现Comparable接口或者实现Comparator接口,会按照排序后的顺序迭代元素,两个相比较的key不得抛出classCastException。主要用于存入元素的时候对元素进行自动排序,迭代输出的时候就按排序顺序输出

以上是关于HashMap和TreeMap的区别的主要内容,如果未能解决你的问题,请参考以下文章

TreeMap和HashMap的区别

java面试题之HashMap和TreeMap的区别

Java中HashMap和LinkedHashMap以及TreeMap的区别

HashMap,TreeMap以及LinkedHashMap的区别

Java中HashMap和TreeMap的区别

TreeMap 与 HashMap 区别相关套路题