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

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

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

    持之以恒

    記錄本
    posts - 4, comments - 32, trackbacks - 0, articles - 74
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Vector和ArrayList區(qū)別
    Vector和ArrayList Vector和ArrayList在使用上非常相似,都可用來表示一組數(shù)量可變的對象應(yīng)用的集合,并且可以隨機地訪問其中的元素。
    Vector的方法都是同步的(Synchronized),是線程安全的(thread-safe),而ArrayList的方法不是,
    由于線程的同步必然要影響性能,因此,
    ArrayList的性能比Vector好。
    當Vector或ArrayList中的元素超過它的初始大小時,Vector會將它
    的容量翻倍,而ArrayList只增加50%的大小,這樣,ArrayList就有利
    于節(jié)約內(nèi)存空間。
    Hashtable和HashMap區(qū)別

    a.Hashtable是繼承自陳舊的Dictionary類的,HashMap繼承自AbstractMap類同時是Java 1.2引進的Map接口的一個實現(xiàn)。
      b.也許最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。這就意味著,然你可以不用采取任何特殊的行為就可以在一個 多線程的應(yīng)用程序中用一個Hashtable,但你必須同樣地為一個HashMap提供外同步。一個方便的方法就是利用Collections類的靜態(tài)的synchronizedMap()方法,它創(chuàng)建一個線程安全的Map對象,并把它作為一個封裝的對象來返回。這個對象的方法可以讓你同步訪問潛在的HashMap。這么做的結(jié)果就是當你不需要同步時,你不能切斷Hashtable中的同步(比如在一個單線程的應(yīng)用程序中),而且同步增加了很多處理費用。
      c.第三點不同是,只有HashMap可以讓你將空值作為一個表的條目的key或value。HashMap中只有一條記錄可以是一個空的key,但任意數(shù)量的條目可以是空的value。這就是說,如果在表中沒有發(fā)現(xiàn)搜索鍵,或者如果發(fā)現(xiàn)了搜索鍵,但它是一個空的值,那么get()將返回null。如果有必要,用containKey()方法來區(qū)別這兩種情況。
      d.HashMap去掉了Hashtable的contains方法,保留了containsValue和containsKey方法
      e.Hashtable中hash數(shù)組默認大小是11,增加的方式是 old*2+1。HashMap中hash數(shù)組的默認大小是16,而且一定是2的指數(shù)

    ArrayList和LinkedList區(qū)別
    對于處理一列數(shù)據(jù)項,Java提供了兩個類ArrayList和LinkedList,ArrayList的內(nèi)部實現(xiàn)是基于內(nèi)部數(shù)組Object[],所以從概念上講,它更象數(shù)組,但LinkedList的內(nèi)部實現(xiàn)是基于一組連接的記錄,所以,它更象一個鏈表結(jié)構(gòu),所以,它們在性能上有很大的差別。
    從上面的分析可知,在ArrayList的前面或中間插入數(shù)據(jù)時,你必須將其后的所有數(shù)據(jù)相應(yīng)的后移,這樣必然要花費較多時間,所以,當你的操作是在一列數(shù)據(jù)的后面添加數(shù)據(jù)而不是在前面或中間,并且需要隨機地訪問其中的元素時,使用ArrayList會提供比較好的性能
    而訪問鏈表中的某個元素時,就必須從鏈表的一端開始沿著連接方向一個一個元素地去查找,直到找到所需的元素為止,所以,當你的操作是在一列數(shù)據(jù)的前面或中間添加或刪除數(shù)據(jù),并且按照順序訪問其中的元素時,就應(yīng)該使用LinkedList了。
    如果在編程中,1,2兩種情形交替出現(xiàn),這時,你可以考慮使用List這樣的通用接口,而不用關(guān)心具體的實現(xiàn),在具體的情形下,它的性能由具體的實現(xiàn)來保證。
    配置集合類的初始大小
    在Java集合框架中的大部分類的大小是可以隨著元素個數(shù)的增加而相應(yīng)的增加的,我們似乎不用關(guān)心它的初始大小,但如果我們考慮類的性能問題時,就一定要考慮盡可能地設(shè)置好集合對象的初始大小,這將大大提高代碼的性能。
    比如,Hashtable缺省的初始大小為101,載入因子為0.75,即如果其中的元素個數(shù)超過75個,它就必須增加大小并重新組織元素,所以,如果你知道在創(chuàng)建一個新的Hashtable對象時就知道元素的確切數(shù)目如為110,那么,就應(yīng)將其初始大小設(shè)為110/0.75=148,這樣,就可以避免重新組織內(nèi)存并增加大小



    小白
    主站蜘蛛池模板: 免费播放在线日本感人片| 伊人久久五月丁香综合中文亚洲 | 最近免费中文字幕mv电影| 怡红院亚洲红怡院在线观看| 亚洲AV无码成人精品区在线观看| 国产精品视频免费一区二区三区| 免费黄色电影在线观看| 一级日本高清视频免费观看| 亚洲国产成人无码AV在线| 亚洲国产av一区二区三区丶| 久久亚洲AV成人出白浆无码国产| 亚洲国产成人精品久久| 亚洲色图古典武侠| 亚洲福利电影在线观看| 亚洲神级电影国语版| 中文字幕亚洲综合小综合在线| 91情国产l精品国产亚洲区| 亚洲国产精品自在在线观看 | 性生大片视频免费观看一级| 五月婷婷免费视频| 色老头综合免费视频| 一级一级毛片免费播放| 特级无码毛片免费视频尤物| 99久久久精品免费观看国产 | 亚洲国产精品免费观看| 青青久久精品国产免费看| baoyu122.永久免费视频| 久久精品无码免费不卡| 亚洲午夜精品在线| 国产精品亚洲αv天堂无码| 红杏亚洲影院一区二区三区| 亚洲精品天天影视综合网| 亚洲色大情网站www| 精品人妻系列无码人妻免费视频 | 亚洲无线电影官网| 天天综合亚洲色在线精品| 午夜免费啪视频在线观看| 青青草国产免费久久久91| 亚洲AV无码专区国产乱码电影| 亚洲最大的成人网站| 久久精品无码专区免费青青|