冰塊+java

          HashMap,LinkedHashMap,TreeMap,HashTable的區別

          java為數據結構中的映射定義了一個接口java.util.Map;它有四個實現類,分別是HashMap Hashtable LinkedHashMap 和TreeMap
          Map主要用于存儲健值對,根據鍵得到值,因此不允許鍵重復(重復了覆蓋了),但允許值重復。
          ----------------------------------------------------------------
          HashMap 是一個最常用的Map,它根據鍵的HashCode 值存儲數據,根據鍵可以直接獲取它的值,具有很快的訪問速度,遍歷時,取得數據的順序是完全隨機的。HashMap最多只允許一條記錄的鍵為Null;允許多條記錄的值為 Null;
          HashMap不支持線程的同步,即任一時刻可以有多個線程同時寫HashMap;可能會導致數據的不一致。如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。
          -----------------------------------------------------------------
          Hashtable與 HashMap類似,它繼承自Dictionary類,不同的是:它不允許記錄的鍵或者值為空;它支持線程的同步,即任一時刻只有一個線程能寫Hashtable,因此也導致了 Hashtable在寫入時會比較慢。
          -----------------------------------------------------------------
          LinkedHashMap保存了記錄的插入順序,在用Iterator遍歷LinkedHashMap時,先得到的記錄肯定是先插入的.也可以在構造時用帶參數,按照應用次數排序。在遍歷的時候會比HashMap慢,不過有種情況例外,當HashMap容量很大,實際數據較少時,遍歷起來可能會比LinkedHashMap慢,因為LinkedHashMap的遍歷速度只和實際數據有關,和容量無關,而HashMap的遍歷速度和他的容量有關。
          -----------------------------------------------------------------
          TreeMap實現SortMap接口,能夠把它保存的記錄根據鍵排序,默認是按鍵值的升序排序,也可以指定排序的比較器,當用Iterator 遍歷TreeMap時,得到的記錄是排過序的。
          ------------------------------------------------------------------------------------------
          總結:
          一般情況下,我們用的最多的是HashMap,HashMap里面存入的鍵值對在取出的時候是隨機的,它根據鍵的HashCode值存儲數據,根據鍵可以直接獲取它的值,具有很快的訪問速度。在Map 中插入、刪除和定位元素,HashMap 是最好的選擇。
          TreeMap取出來的是排序后的鍵值對。但如果您要按自然順序或自定義順序遍歷鍵,那么TreeMap會更好。
          LinkedHashMap 是HashMap的一個子類,如果需要輸出的順序和輸入的相同,那么用LinkedHashMap可以實現,它還可以按讀取順序來排列,像連接池中可以應用。

          posted on 2011-10-21 09:58 iceblock 閱讀(981) 評論(0)  編輯  收藏 所屬分類: JAVA基礎


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2011年10月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 澄江县| 内乡县| 汽车| 常德市| 长岛县| 吴川市| 安新县| 玉田县| 措勤县| 湘西| 龙南县| 大姚县| 忻城县| 永年县| 南宫市| 遂宁市| 玛沁县| 乌兰察布市| 濮阳县| 上高县| 承德市| 搜索| 平罗县| 桦南县| 磐安县| 石首市| 怀集县| 晋城| 镇宁| 马鞍山市| 旌德县| 白山市| 淳安县| 洛宁县| 西和县| 永宁县| 蕲春县| 城口县| 锦屏县| 吉木萨尔县| 澎湖县|