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

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

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

    gembin

    OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

    HBase, Hadoop, ZooKeeper, Cassandra

    Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

    There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

    About Me

     

    LinkedHashMap

    public class LinkedHashMap<K,V>
    extends HashMap<K,V>
    implements Map<K,V>

    Map 接口的哈希表和鏈接列表實(shí)現(xiàn),具有可預(yù)知的迭代順序。此實(shí)現(xiàn)與 HashMap 的不同之處在于,后者維護(hù)著一個(gè)運(yùn)行于所有條目的雙重鏈接列表。此鏈接列表定義了迭代順序,該迭代順序通常就是將鍵插入到映射中的順序(插入順序)。注意,如果在映射中重新插入 鍵,則插入順序不受影響。(如果在調(diào)用 m.put(k, v)m.containsKey(k) 返回了 true,則調(diào)用時(shí)會(huì)將鍵 k 重新插入到映射 m 中。)

    此實(shí)現(xiàn)可以讓客戶(hù)避免未指定的、由 HashMap(及 Hashtable)所提供的通常為雜亂無(wú)章的排序工作,同時(shí)無(wú)需增加與 TreeMap 相關(guān)的成本。使用它可以生成一個(gè)與原來(lái)順序相同的映射副本,而與原映射的實(shí)現(xiàn)無(wú)關(guān):

         void foo(Map m) {
    Map copy = new LinkedHashMap(m);
    ...
    }
    如果模塊通過(guò)輸入得到一個(gè)映射,復(fù)制這個(gè)映射,然后返回由此副本確定其順序的結(jié)果,這種情況下這項(xiàng)技術(shù)特別有用。(客戶(hù)通常期望返回的內(nèi)容與其出現(xiàn)的順序相同。)

    提供特殊的構(gòu)造方法來(lái)創(chuàng)建鏈接哈希映射,該哈希映射的迭代順序就是最后訪(fǎng)問(wèn)其條目的順序,從近期訪(fǎng)問(wèn)最少到近期訪(fǎng)問(wèn)最多的順序(訪(fǎng)問(wèn)順序)。這種映射很適合構(gòu)建 LRU 緩存。調(diào)用 putget 方法將會(huì)訪(fǎng)問(wèn)相應(yīng)的條目(假定調(diào)用完成后它還存在)。putAll 方法以指定映射的條目集合迭代器提供的鍵-值映射關(guān)系的順序,為指定映射的每個(gè)映射關(guān)系生成一個(gè)條目訪(fǎng)問(wèn)。任何其他方法均不生成條目訪(fǎng)問(wèn)。特別是,collection 視圖上的操作 影響底層映射的迭代順序。

    可以重寫(xiě) removeEldestEntry(Map.Entry) 方法來(lái)實(shí)施策略,以便在將新映射關(guān)系添加到映射時(shí)自動(dòng)移除舊的映射關(guān)系。

    此類(lèi)提供所有可選的 Map 操作,并且允許 null 元素。與 HashMap 一樣,它可以為基本操作(addcontainsremove)提供穩(wěn)定的性能,假定哈希函數(shù)將元素正確分布到桶中。由于增加了維護(hù)鏈接列表的開(kāi)支,其性能很可能比 HashMap 稍遜一籌,不過(guò)這一點(diǎn)例外:LinkedHashMap 的 collection 視圖迭代所需時(shí)間與映射的大小 成比例。HashMap 迭代時(shí)間很可能開(kāi)支較大,因?yàn)樗枰臅r(shí)間與其容量 成比例。

    鏈接的哈希映射具有兩個(gè)影響其性能的參數(shù):初始容量加載因子。它們的定義與 HashMap 極其相似。要注意,為初始容量選擇非常高的值對(duì)此類(lèi)的影響比對(duì) HashMap 要小,因?yàn)榇祟?lèi)的迭代時(shí)間不受容量的影響。

    注意,此實(shí)現(xiàn)不是同步的。如果多個(gè)線(xiàn)程同時(shí)訪(fǎng)問(wèn)鏈接的哈希映射,而其中至少一個(gè)線(xiàn)程從結(jié)構(gòu)上修改了該映射,則它必須 保持外部同步。這一般通過(guò)對(duì)自然封裝該映射的對(duì)象進(jìn)行同步操作來(lái)完成。如果不存在這樣的對(duì)象,則應(yīng)該使用 Collections.synchronizedMap 方法來(lái)“包裝”該映射。最好在創(chuàng)建時(shí)完成這一操作,以防止意外的非同步訪(fǎng)問(wèn):

        Map m = Collections.synchronizedMap(new LinkedHashMap(...));
    結(jié)構(gòu)修改是指添加或刪除一個(gè)或多個(gè)映射關(guān)系,或者在按訪(fǎng)問(wèn)順序鏈接的哈希映射中影響迭代順序的任何操作。在按插入順序鏈接的哈希映射中,僅更改與映射中已包含鍵關(guān)聯(lián)的值不是結(jié)構(gòu)修改。在按訪(fǎng)問(wèn)順序鏈接的哈希映射中,僅利用 get 查詢(xún)映射不是結(jié)構(gòu)修改。

    Collection(由此類(lèi)的所有 collection 視圖方法所返回)的 iterator 方法返回的迭代器都是快速失敗 的:在迭代器創(chuàng)建之后,如果從結(jié)構(gòu)上對(duì)映射進(jìn)行修改,除非通過(guò)迭代器自身的移除方法,其他任何時(shí)間任何方式的修改,迭代器都將拋出 ConcurrentModificationException。因此,面對(duì)并發(fā)的修改,迭代器很快就會(huì)完全失敗,而不冒將來(lái)不確定的時(shí)間任意發(fā)生不確定行為的風(fēng)險(xiǎn)。

    注意,迭代器的快速失敗行為無(wú)法得到保證,因?yàn)橐话銇?lái)說(shuō),不可能對(duì)是否出現(xiàn)不同步并發(fā)修改做出任何硬性保證。快速失敗迭代器會(huì)盡最大努力拋出 ConcurrentModificationException。因此,編寫(xiě)依賴(lài)于此異常的程序的方式是錯(cuò)誤的,正確做法是:迭代器的快速失敗行為應(yīng)該僅用于檢測(cè)程序錯(cuò)誤。

    此類(lèi)是 Java Collections Framework 的成員。


    posted on 2008-11-14 17:13 gembin 閱讀(714) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): JavaSE

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆分類(lèi)(440)

    隨筆檔案(378)

    文章檔案(6)

    新聞檔案(1)

    相冊(cè)

    收藏夾(9)

    Adobe

    Android

    AS3

    Blog-Links

    Build

    Design Pattern

    Eclipse

    Favorite Links

    Flickr

    Game Dev

    HBase

    Identity Management

    IT resources

    JEE

    Language

    OpenID

    OSGi

    SOA

    Version Control

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    free counters
    主站蜘蛛池模板: 无码人妻一区二区三区免费视频 | 免费av欧美国产在钱| 国产99视频精品免费视频7| 亚洲午夜久久久久久久久电影网 | 羞羞的视频在线免费观看| 免费黄色电影在线观看| 精品免费国产一区二区| 亚洲AV永久青草无码精品| 亚洲欧美日韩国产精品一区| 国产成人无码区免费网站| 成年人视频在线观看免费| 亚洲国产婷婷六月丁香| 亚洲精品欧美综合四区| 久久久免费精品re6| 免费萌白酱国产一区二区| 亚洲欧洲精品在线| 亚欧洲精品在线视频免费观看| 国产一卡2卡3卡4卡2021免费观看| 亚洲综合AV在线在线播放| 亚洲日韩乱码中文字幕| 免费人成在线观看网站品爱网| 亚洲AV网站在线观看| 亚洲激情校园春色| a毛片久久免费观看| 国产传媒在线观看视频免费观看| 亚洲精品一区二区三区四区乱码| 亚洲精品视频免费| 国产猛烈高潮尖叫视频免费| 亚洲欧洲国产视频| 黄色片免费在线观看| 亚洲av麻豆aⅴ无码电影| 亚洲熟妇丰满xxxxx| 91精品视频在线免费观看| 亚洲精品无码Av人在线观看国产| 亚洲av综合日韩| 18禁超污无遮挡无码免费网站国产 | 亚洲AV日韩AV天堂久久| 一个人看的www视频免费在线观看| 午夜免费不卡毛片完整版| 亚洲女人初试黑人巨高清| 国产精品免费大片|