Hashtable TreeMap HashMap LinkedHashMap的区别

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45151960/article/details/102756632

Hashtable TreeMap HashMap LinkedHashMap的区别

  • Hashtable
1、内部存储的键值对是无序的是按照哈希算法进行排序,与 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 进去的最后出来,先进后出。

猜你喜欢

转载自blog.csdn.net/weixin_45151960/article/details/102756632