浅言:HashTable是什么东西,好像从业以来从来没用过,TreeMap只用过一次.其他情况不是用HashMap就是ConcurrentHashMap
Hashtable和Hashmap,treemap都是实现Map接口的键值对集合
其中HashTable继承了dictionary类,保证了线程安全,hashmap和treemap都是继承了abstractMap.他们都是线程非安全的
hashtable底层数据结构是哈希表,key和value都不能为null,hashmap底层是hash表+链表+红黑树,TreeMap底层是由红黑树构成,key不能为null,value可以为null
treemap最大优点就是它是一个有序的map集合,既可以按照key的插入顺序或者实现内部的comparator方法来自定义排序
说一说hashmap的为什么会变成树化,
尽管HashMap的负载因子默认是0.75,超过阈值会resize,但是在极端情况下,一个哈希下可能堆积若干个value(特别是恶意的情况下),因为这时候是该桶会退化成链表,所以查询性能就会下降很多,如果有几十万个/百万个链表数据...(百度:Hash碰撞攻击)