<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 431,  comments - 344,  trackbacks - 0
    今天看別人寫的代碼, 其中使用了兩種Map子類, IdentityHashMap和WeakHashMap, 經查看JDK文檔得知:
    IdentityHashMap
    此類利用哈希表實現 Map 接口,比較鍵(和值)時使用引用相等性代替對象相等性。換句話說,在 IdentityHashMap 中,當且僅當 (k1==k2) 時,才認為兩個鍵 k1k2 相等(在正常 Map 實現(如 HashMap)中,當且僅當滿足下列條件時才認為兩個鍵 k1k2 相等:(k1==null ? k2==null : e1.equals(e2)))。
    也就是說, 如果Key是同一個對象才算是鍵相等, 如果只是值相等, 那么不算相等.
    比如
      Map<Pet, String> map = new IdentityHashMap<Pet, String>();
      Pet p = new Pet("eric");
      map.put(new Pet("eric"), "eric");
      map.put(new Pet("eric"), "hello");
      System.out.println("size = " + map.size());
      
      Map<Pet, String> hashMap = new HashMap<Pet, String>();
      hashMap.put(new Pet("eric"), "eric");
      hashMap.put(new Pet("eric"), "hello");
      System.out.println("hashMap size = " + hashMap.size());
    Pet中的equals中只要name相等, 就算這兩個pet對象相等. 執行結果為:
    size = 2
    hashMap size = 1

    WeakHashMap
    弱鍵 實現的基于哈希表的 Map。在 WeakHashMap 中,當某個鍵不再正常使用時,將自動移除其條目。更精確地說,對于一個給定的鍵,其映射的存在并不阻止垃圾回收器對該鍵的丟棄,這就使該鍵成為可終止的,被終止,然后被回收。丟棄某個鍵時,其條目從映射中有效地移除,因此,該類的行為與其他的 Map 實現有所不同。
    其實就是除了本map引用以外, 沒有其他對象引用該key對象, 則WeakHashMap會自動移除這個key以及對應的值.
    posted on 2009-05-15 16:54 周銳 閱讀(1495) 評論(5)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲男人的天堂网站| 久久亚洲精品国产精品| 亚洲色偷偷综合亚洲av78| 久久精品a一国产成人免费网站 | 精品久久8x国产免费观看| 亚洲午夜久久久精品影院| 免费人成黄页在线观看日本| 亚洲精品亚洲人成在线观看| 国内精品一级毛片免费看| 五月天网站亚洲小说| 99久久精品国产免费| 亚洲国产日韩女人aaaaaa毛片在线| 16女性下面无遮挡免费| 亚洲导航深夜福利| 国产精品成人免费一区二区| 亚洲精品国产suv一区88| 四虎永久成人免费| 国产日韩久久免费影院| 亚洲美女又黄又爽在线观看| 久久免费精彩视频| 亚洲欧洲自拍拍偷综合| 男女交性永久免费视频播放 | 狠狠综合久久综合88亚洲| 国产在线精品一区免费香蕉 | 亚洲级αV无码毛片久久精品| 黄色网址在线免费| 亚洲日韩乱码中文无码蜜桃| 成人午夜视频免费| 一个人免费观看日本www视频 | 亚洲男人的天堂在线播放| 无码国产精品一区二区免费式直播 | 四虎永久免费地址在线观看| 精品免费久久久久国产一区| 亚洲国产精品久久久久婷婷软件| 国产成人免费网站| 羞羞网站免费观看| 婷婷久久久亚洲欧洲日产国码AV| 全免费一级午夜毛片| 黄桃AV无码免费一区二区三区| 亚洲理论在线观看| 四虎影视永久免费观看|