java基礎---HashMap和HashTable的異同之處

來源:互聯網
上載者:User

標籤:

1:連個都實現了Map的介面,兩者的底層資料結構相同,都是transient修飾的entry數組,transient修飾的變數不會序列化即不會持久化,序列化的過程中不會包含這個變數,這個變數的生命週期僅僅是在使用者的調用過程中,不能持久化到記憶體磁碟中。這樣便於一些敏感資訊的儲存

2:HashMap是不安全的,不能同步,不支援多線程並發,HashTable是安全的,有同步鎖,但效率低。

3:HashMap從AbstractMap繼承而來,HashTable是從Dictionary繼承而來

4:HashMap允許Null存在,表示key對應的value值不存在或者就是null。而HashTable不能有null

5:HashTable的hash是直接使用對象的hash,而HashMap要重新算起散列值,因而更加散列,有助於減少衝突。提高效率

6:HashTable可以用Itertor來實現遍曆,HashMap也可以用這個,但在早起版本中HashTable還可以用Enumeration來遍曆

7:HashTable預設初始化數組的大小是11,可以指定數組的初始化大小,擴容採用的規則是old*2+1,

        HashMap預設的數組大小是16,長度保持2的倍數,擴容時選擇大於initCaptiy的最小的2的倍數的大小

 

8兩者都支援FF失敗機制

java基礎---HashMap和HashTable的異同之處

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.