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

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

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

    復(fù)雜的事情要簡(jiǎn)單做;   簡(jiǎn)單的事情要認(rèn)真做;   認(rèn)真的事情要重復(fù)做;   重復(fù)的事情要?jiǎng)?chuàng)造性地做。

    信心 恒心 決心 創(chuàng)意 樂(lè)意

    も軍魂ミ 心系java

    Java的魅力:跨平臺(tái)、動(dòng)態(tài)的Web、Internet計(jì)算 Java在Web、移動(dòng)設(shè)備以及云計(jì)算方面前景廣闊 我的java編程不是夢(mèng)?。?! 俗話說(shuō)的好:“授人以魚不如授人以漁”.
    posts - 10, comments - 12, trackbacks - 0, articles - 5
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    java容器類的層次及區(qū)別

    Posted on 2010-11-07 01:08 セ軍魂ミ 閱讀(1917) 評(píng)論(2)  編輯  收藏 所屬分類: java容器類

        
    一、容器類層次




    二、容器類的區(qū)別       
                                                                     

        1)、Vector和ArrayList  
                    1,vector是線程同步的,所以它也是線程安全的,而arraylist是線程異步的,是不安全的。如果不考慮到線程的安全因素,一般用arraylist效率比較高。
                     2,如果集合中的元素的數(shù)目大于目前集合數(shù)組的長(zhǎng)度時(shí),vector增長(zhǎng)率為目前數(shù)組長(zhǎng)度的100%,而arraylist增長(zhǎng)率為目前數(shù)組長(zhǎng)度的50%.如過(guò)在集合中使用數(shù)據(jù)量比較大的數(shù)據(jù),用vector有一定的優(yōu)勢(shì)。
     
                 ArrayList 和Vector是采用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插入元素,都允許直接序號(hào)索引元素,但是插入數(shù)據(jù)要設(shè)計(jì)到數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)快插入數(shù)據(jù)慢,Vector由于使synchronized方法(線程安全)所以性能上比ArrayList要差,
                 LinkedList使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行向前或向后遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入數(shù)度較快!

         2)、arraylist和linkedlist

         1.ArrayList是實(shí)現(xiàn)了基于動(dòng)態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu),LinkedList基于鏈表的數(shù)據(jù)結(jié)構(gòu)。
         2.對(duì)于隨機(jī)訪問(wèn)get和set,ArrayList覺得優(yōu)于LinkedList,因?yàn)長(zhǎng)inkedList要移動(dòng)指針。
         3.對(duì)于新增和刪除操作add和remove,LinkedList比較占優(yōu)勢(shì),因?yàn)锳rrayList要移動(dòng)數(shù)據(jù)。
           這一點(diǎn)要看實(shí)際情況的。若只對(duì)單條數(shù)據(jù)插入或刪除,ArrayList的速度反而優(yōu)于LinkedList。
           但若是批量隨機(jī)的插入刪除數(shù)據(jù),LinkedList的速度大大優(yōu)于ArrayList. 因?yàn)锳rrayList每插入一條數(shù)據(jù),要移動(dòng)插入點(diǎn)及之后的所有數(shù)據(jù)。


        3)、HashMap與TreeMap 

                 1、HashMap通過(guò)hashcode對(duì)其內(nèi)容進(jìn)行快速查找,而TreeMap中所有的元素都保持著某種固定的順序,如果你需要得到一個(gè)有序的結(jié)果你就應(yīng)該使用TreeMap(HashMap中元素的排列順序是不固定的)。集合框架”提供兩種常規(guī)的Map實(shí)現(xiàn):HashMap和TreeMap (TreeMap實(shí)現(xiàn)SortedMap接口)。

                2、在Map 中插入、刪除和定位元素,HashMap 是最好的選擇。但如果您要按自然順序或自定義順序遍歷鍵,那么TreeMap會(huì)更好。使用HashMap要求添加的鍵類明確定義了hashCode()和 equals()的實(shí)現(xiàn)?! ?/h3>

    這個(gè)TreeMap沒有調(diào)優(yōu)選項(xiàng),因?yàn)樵摌淇偺幱谄胶鉅顟B(tài)。

       4)、hashtable與hashmap

         1.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進(jìn)的Map接口的一個(gè)實(shí)現(xiàn)

         2.同步性:Hashtable是線程安全的,也就是說(shuō)是同步的,而HashMap是線程序不安全的,不是同步

         3.值:只有HashMap可以讓你將空值作為一個(gè)表的條目的key或value

        5)、Set與List
           Set中的數(shù)據(jù)對(duì)象沒有順序不可以重復(fù)。
           List中的數(shù)據(jù)對(duì)象有順序可以重復(fù)。


    評(píng)論

    # re: java容器類的層次及區(qū)別  回復(fù)  更多評(píng)論   

    2011-07-14 13:07 by stone2083
    推薦個(gè)畫圖軟件:
    linux下的dia,或者jude
    windows下的edraw,或者staruml,或者jude(跨平臺(tái)的)

    # re: java容器類的層次及區(qū)別  回復(fù)  更多評(píng)論   

    2011-07-14 23:02 by セ智軍ミ
    @stone2083
    恩,知道了。。我研究研究去,謝謝啊。。

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久久精品午夜免费不卡| 精品国产日韩亚洲一区91| 亚洲一区二区三区高清不卡| 亚洲色成人WWW永久在线观看| 亚洲av无码偷拍在线观看| 日韩在线一区二区三区免费视频| 久青草视频97国内免费影视| 99精品视频在线观看免费播放 | 亚洲AⅤ永久无码精品AA| 久久伊人亚洲AV无码网站| 亚洲av日韩av高潮潮喷无码| 久久精品国产亚洲AV忘忧草18| 精品亚洲成A人在线观看青青| 国产精品99爱免费视频| 37pao成人国产永久免费视频| 日韩成人在线免费视频| 亚洲中文字幕无码不卡电影 | 国产精品一区二区三区免费 | 三年片在线观看免费| 国产精品亚洲午夜一区二区三区| 亚洲成a人片在线观看久| 免费观看黄网站在线播放| 精品无码一级毛片免费视频观看| 亚洲视频一区二区三区四区| 亚洲日产无码中文字幕| 亚洲精品无码永久在线观看你懂的| 久久久久久国产精品免费免费| 久久永久免费人妻精品下载| a毛片在线免费观看| 免费无码精品黄AV电影| 亚洲不卡无码av中文字幕| 久久亚洲AV成人无码| 美美女高清毛片视频黄的一免费 | 精品国产香蕉伊思人在线在线亚洲一区二区 | 中文字幕亚洲一区| 亚洲成a人片在线看| 三上悠亚在线观看免费| 午夜爱爱免费视频| 久久久亚洲裙底偷窥综合| 五级黄18以上免费看| 人禽杂交18禁网站免费|