HashMap:一种存储键/值关联的数据结构。适用于在Map中插入、删除和定位元素。
TreeMap:一种键/值有序排列的映射表。整体顺序是由键的顺序关系决定的,通过Comparable或Comparator来决定。
HashTable:与HashMap类的作用一样,不过HashTable是同步的,现在是集合框架中的遗留类。如果对同步性没有任何要求,就适用HashMap,如果需要并发访问,就使用ConcurrentHashMap。
ConcurrentHashMap和HashTable的区别
HashTable和ConcurrentHashMap都可以用于多线程的环境,但是当HashTable的大小增加到一定的时候,性能会急剧下降,因为迭代时需要被锁定很长的时间。而ConcurrentHashMap引入了分割(segmentation),不论它变得多么大,仅仅需要锁定map的某个部分,而其他线程不需要等到迭代完成才能访问Map。简而言之,在迭代的过程中,ConcurrentHashMap仅仅锁定map的某个部分,而HashTable会锁定整个map。