国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java HashMap,TreeMap與LinkedHashMap的詳解

2019-11-26 13:30:51
字體:
來源:轉載
供稿:網友

 java HashMap,TreeMap與LinkedHashMap的詳解

今天上午面試的時候 問到了Java,Map相關的事情,我記錯了HashMap和TreeMap相關的內容,回來趕緊嘗試了幾個demo理解下

package Map;  import java.util.*;  public class HashMaps {   public static void main(String[] args) {     Map map = new HashMap();     map.put("a", "aaa");     map.put("b", "bbb");     map.put("c", "ccc");     map.put("d", "ddd");      Iterator iterator = map.keySet().iterator();     while (iterator.hasNext()) {       Object key = iterator.next();       System.out.println("map.get(key) is :" + map.get(key));     }      Hashtable tab = new Hashtable();     tab.put("a", "aaa");     tab.put("b", "bbb");     tab.put("c", "ccc");     tab.put("d", "ddd");     Iterator iterator_1 = tab.keySet().iterator();     while (iterator_1.hasNext()) {       Object key = iterator_1.next();       System.out.println("tab.get(key) is :" + tab.get(key));     }      TreeMap tmp = new TreeMap();     tmp.put("a", "aaa");     tmp.put("b", "bbb");     tmp.put("c", "ccc");     tmp.put("d", "ddd");     tmp.put("a", "aba");     Iterator iterator_2 = tmp.keySet().iterator();     while (iterator_2.hasNext()) {       Object key = iterator_2.next();       System.out.println("tmp.get(key) is :" + tmp.get(key));     }               LinkedHashMap<String ,Integer> linkedHashMap = new LinkedHashMap<String,Integer>();     linkedHashMap.put("dasdsa", 1);     linkedHashMap.put("gdsf",2);     linkedHashMap.put("texvdfd", 3);     linkedHashMap.put("bdada", 4);          linkedHashMap.put("gdsf",3);     for(String temp : linkedHashMap.keySet()){       System.out.println(temp);     }        }  } 

Map不同于 List, 底層使用 鍵值對的形式存儲數據 Map.Entry是內部的一個子條目,Map的不同實現 對鍵值對的索引方案不同
HashMap 本身是用hash函數對鍵值做索引   我們不能確定最后鍵值的順序

      但是存在一個有趣的現象 就是在以Integer作為鍵值對的時候,當位數為1位時   鍵值是按照從小到大排的,位數上升到兩位的時候 就可能存在問題

TreeMap  內部存在著一個平衡樹來存儲著鍵值索引,TreeMap 把鍵值按照比較函數排序,我推測內部是可能存在著一個AVLtree

LinkedHashMap   這個存在著一個特性是,鍵值對是按照插入順序排序的,如果存在著重復插入,以首次插入的順序來記,網上的一種說法是該結構內部存在著2重hash

   一個解決順序問題,一個解決存儲問題,正確性待確認

HashMap和TreeMap  是最常用的兩種Map結構,  一般來說HashMap的效率比較高,也最為常見,如果我們需要鍵值有序的話,我們才會用到TreeMap

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 随州市| 浦北县| 三都| 聊城市| 柞水县| 瑞金市| 桂平市| 阿尔山市| 无极县| 文安县| 九台市| 凤冈县| 镇平县| 武川县| 惠安县| 永川市| 西城区| 天长市| 怀集县| 弥渡县| 阿瓦提县| 深泽县| 绥德县| 扶绥县| 伊宁市| 高台县| 洛隆县| 鹤山市| 阿合奇县| 自贡市| 峨眉山市| 措勤县| 稻城县| 双牌县| 偃师市| 河南省| 沙坪坝区| 蕲春县| 新化县| 榆树市| 筠连县|