HashMap,HashTable,TreeMap,WeakHashMap的区别

Java为数据结构中的映射定义了一个接口java.util.Map,包括3个实现类:HashMap、HashTable和TreeMap。

HashMap和HashTable都采用hash法进行索引,但二者还有一些区别。

  HashMap HashTable
安全性 不安全,不同步 安全,同步
key值 允许为null 不允许为null
contains方法 有containsValue 有contains,containsKey,containsValue
父类 AbstractMao Dictionary
hash数组大小 默认是16,扩容是2*old 默认是11,扩容方式是old*2+1

(1)HashMap存入键值对时是随机的

(2)TreeMap实现了SortMap接口,将元素根据可以排序

(3)LinkedHashMap是HashMap的子类,输入和输出相同

(4)WeakHashMap的key采用的是“弱引用”,只要WeakHashMap的key不再被外部引用,就被垃圾回收器回收。HashMap的key是“强引用”,只有key从hashMap中删除,才可以被垃圾回收器回收。

发布了52 篇原创文章 · 获赞 5 · 访问量 6106
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章