對比 Hashtable、HashMap、TreeMap 的區別聯繫以及適用場景

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/youngogo/article/details/81267644
  • 典型回答

1、hashtable是早起java類庫提供的一個哈希表實現,本身是同步的,不支持null鍵和空值,由於同步導致的性能開銷,現在已經很少被使用了

2、hashmap是應用更加廣泛的哈希表實現,應爲大體和hashtable一致,不同點是hashmap支持null鍵和空值,而且不是同步的。他的put和get方法,可以達到常數時間的性能,是絕大多數利用鍵值對存取場景的首選

3、treemap是基於紅黑樹實現的一種提供順序訪問的map,與hashmap不同的是的get和putremove方法,都是log(n)的時間複雜度,具體順序可以由指定的comparator來決定,默認是按照升序排列。


  • 考點分析

上面的回答,只是對一些基本特徵的簡單總結,針對 Map相關可以擴展出好多問題,如從各種數據結構、典型應用場景,到程序設計實現的技術考量,尤其在Java8中hashmap發生了很多變化,這些都是經常考察的方面。

關於最新JDK8HashMap實現原理請看小編下篇博客(更新中)

  • 知識擴展

對Map知識框架有個整體瞭解,map經常被包含在Java的集合框架裏面,map並不是狹義上的collections集合類型。具體請參照下面這個簡單類圖。

小編道行還沒那麼深,歡迎大家積極發言交流哈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章