Map-> hashMap treeMap 以键值对的形式

HashMap:底层是哈希表数据结构,是无序的
 
HashMap通过hashcode对其内容进行快速查找

线程不同步。HashMap通过hashcode对其内容进行快速查找

<span style="color:#333333">允许null作为key和value,key不可以重复,value允许重复,
</span>
<span style="color:#333333">每次容量扩容会重新计算所以key的hash值,会消耗资源,要求key必须重写equals和hashcode方法
</span>


TreeMap:底层是红黑二叉树数据结构,线程不同步,可用于给Map集合中的键进行排序
TreeMap:底层是红黑二叉树数据结构,线程不同步,可用于给Map集合中的键进行排序
<span style="color:#333333"> TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。</span>

<span style="color:#333333">不允许null,key不可以重复,value允许重复
</span>
 
hashTable是线程安全的HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)
HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)

hashTable是线程安全的一个Collection

可以参照arrayList和vartor

Hashtable应尽量避免使用,单线程下可使用HashMap替代,多线程下可使用ConcurrentHashMap替代

猜你喜欢

转载自blog.csdn.net/llhh11149/article/details/70159859