HashMap与 HashTable, Treemap的区别

(一)HashMap 

  1.HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null; 
2.HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。

(二)HashTable 

  1.不允许记录的键或者值为空; 
  2.它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了 Hashtable在写入时会比较慢。

(三)TreeMap 

  1.不支持线程的同步; 
  2.基于红黑树(Red-Black tree)的 NavigableMap 实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。 
  3.TreeMap实现SortedMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。

原文地址:https://www.cnblogs.com/wanghp/p/6945037.html