Map的相關總結

1、什麼是MAP

      什麼是Map,字面上就是地圖,通過輸入經維度信息就能夠快速定位地理位置;對於其他領域,Map是一個容器,這個容器記錄了一個鍵、一個值,有一個映射關係將其對應,從而快速的獲取對應鍵值的內容。

2、爲什麼要用Map

2.1 Map的特點

   通過上面的定義,可以得出Map的一些特點:

     1、一種映射關係關聯了鍵值和實際的存儲結果,能存東西

     2、獲取這個結果的時間消耗,最小能到達O(1),能快速取數

2.2 Map的類型

    根據不同的映射類型,可以將Map分爲哈希Map、位圖Map、樹Map、鏈式Map,其中後兩者用於排序相關的內容;而根據線程安全和讀寫安全又分爲ConcurrentHashMap與ReadAndWriteMap。

   i、HashMap

        常見的映射方法:

             哈希算法:

              參考:https://blog.csdn.net/Beyond_2016/article/details/81286360

               https://www.cnblogs.com/endenvor/p/8512211.html

            Java 的Map映射方式:

        static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); }

在JDK1.8的實現中,優化了高位運算的算法,通過hashCode()的高16位異或低16位實現的:(h = k.hashCode()) ^ (h >>> 16),主要是從速度、功效、質量來考慮的。以上方法得到的int的hash值,然後再通過 h & (table.length -1) 來得到該對象在數據中保存的位置。

 參考:http://ju.outofmemory.cn/entry/346983

   ii、位圖Map

    所謂的位圖Map是將映射關係用比特位表示,KEY本身本身就是Value在位圖的位置,因此key的位置就能表示Value值;這種方式省空間,適合求解算法,查找重複值、搜索,計數用。

參考:https://blog.csdn.net/u013278314/article/details/86078071

https://www.cnblogs.com/li-ning/p/9489974.html

https://www.jianshu.com/p/c4c5a00b40db

iii、樹形Map

      樹的類型有哪些?

           二叉樹

           B樹

           B+樹

           紅黑樹

     各自的特點和差異是什麼?(待分析)

3、常用的JavaMap以及代碼實現原理(待分析)

4、每種Map需要注意的點(待分析)

5、參考資料

https://www.cnblogs.com/yuanblog/p/4441017.html

https://www.cnblogs.com/little-fly/p/7344285.html

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