Hashtable TreeMap HashMap LinkedHashMap的区别
Hashtable TreeMap HashMap LinkedHashMap详解
Hashtable1、内部存储的键值对是无序的是按照哈希算法进行排序,与 HashMap 最大的区别就是线程安全。2、键或者值不能为 null,为 null 就会抛出空指针异常。3、HashTable 是 sychronize,多个线程访问时不需要自己为它的方法实现同步。4、Hashtable提供了对键的列举(Enumeration)。
HashMap
1、 是线程不安全的,HashMap 是一个接口,是 Map 的一个子接口,是将键映射到值得对象2、不允许键值重复,允许空键和空值;3、由于非线程安全,HashMap 的效率要较 HashTable 的效率高一些。4、HashMap 在被多个线程访问的时候需要自己为它的方法实现同步5、HashMap提供了可供应用迭代的键的集合,因此,HashMap是快速失败的
TreeMap
基于红黑树 (red-black tree) 数据结构实现,按 key 排序,默认的排序方式是升序。
LinkedHashMap
有序的 Map 集合实现类,相当于一个栈,先 put 进去的最后出来,先进后出。