HashMap和TreeMap的区别
Posted xyqing525
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的区别的主要内容,如果未能解决你的问题,请参考以下文章
Java中HashMap和LinkedHashMap以及TreeMap的区别