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

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

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

    java中Collection的介紹

    在使用java的時候,我們都會遇到使用集合(collection)的時候,但是java api提供了多種集合的實現(xiàn)。

    總的說來,java api中所用的集合類,都是實現(xiàn)了collection接口,他的一個類繼承結(jié)構(gòu)如下:

                      collection<--list<--vector
                              collection<--list<--arraylist
                              collection<--list<--linkedlist
                              collection<--set<--hashset
                              collection<--set<--hashset<--linkedhashset
                              collection<--set<--sortedset<--treeset

    vector : 基于array的list,其實就是封裝了array所不具備的一些功能方便我們使用,它不可能走入array的限制。性能也就不可能超越array。所以,在可能的情況下,我們要多運(yùn)用array。另外很重要的一點就是vector&ldquo;sychronized&rdquo;的,這個也是vector和arraylist的唯一的區(qū)別。

    arraylist:同vector一樣是一個基于array上的鏈表,但是不同的是arraylist不是同步的。所以在性能上要比vector優(yōu)越一些,但是當(dāng)運(yùn)行到多線程環(huán)境中時,可需要自己在管理線程的同步問題。

    linkedlist:linkedlist不同于前面兩種list,它不是基于array的,所以不受array性能的限制。它每一個節(jié)點(node)都包含兩方面的內(nèi)容:1.節(jié)點本身的數(shù)據(jù)(data);2.下一個節(jié)點的信息(nextnode)。所以當(dāng)對linkedlist做添加,刪除動作的時候就不用像基于array的list一樣,必須進(jìn)行大量的數(shù)據(jù)移動。只要更改nextnode的相關(guān)信息就可以實現(xiàn)了。這就是linkedlist的優(yōu)勢。

    list總結(jié):

    1. 所有的list中只能容納單個不同類型的對象組成的表,而不是key-value鍵值對。例如:[ tom,1,c ];

    2. 所有的list中可以有相同的元素,例如vector中可以有 [ tom,koo,too,koo ];

    3. 所有的list中可以有null元素,例如[ tom,null,1 ];

    4. 基于array的list(vector,arraylist)適合查詢,而linkedlist(鏈表)適合添加,刪除操作。

    hashset:雖然set同list都實現(xiàn)了collection接口,但是他們的實現(xiàn)方式卻大不一樣。list基本上都是以array為基礎(chǔ)。但是set則是在hashmap的基礎(chǔ)上來實現(xiàn)的,這個就是set和list的根本區(qū)別。hashset的存儲方式是把hashmap中的key作為set的對應(yīng)存儲項。看看hashset的add(object  obj)方法的實現(xiàn)就可以一目了然了。

        public boolean add(object obj)
        {
            return map.put(obj, present) == null;
        }

    這個也是為什么在set中不能像在list中一樣有重復(fù)的項的根本原因,因為hashmap的key是不能有重復(fù)的。

    linkedhashset:hashset的一個子類,一個鏈表。

    treeset:sortedset的子類,它不同于hashset的根本就是treeset是有序的。它是通過sortedmap來實現(xiàn)的。

    set總結(jié):

    1. set實現(xiàn)的基礎(chǔ)是map(hashmap);

    2.  set中的元素是不能重復(fù)的,如果使用add(object obj)方法添加已經(jīng)存在的對象,則會覆蓋前面的對象。

    posted on 2007-05-10 16:20 mingyue 閱讀(8350) 評論(2)  編輯  收藏

    評論

    # re: java中Collection的介紹 2012-09-07 13:41 線程

    線程  回復(fù)  更多評論   

    # re: java中Collection的介紹 2015-03-16 15:38 wkz_crystal

    總結(jié)得非常好哦,大家一起學(xué)習(xí),才能共同進(jìn)步:加油!  回復(fù)  更多評論   


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


    網(wǎng)站導(dǎo)航:
     
    <2015年3月>
    22232425262728
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(2)

    隨筆檔案

    nice blog

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 婷婷亚洲久悠悠色悠在线播放| 亚洲成a人片在线观看老师| 亚洲91av视频| 久久久久久久岛国免费播放| 亚洲色大成网站www永久一区 | 亚洲精品一级无码中文字幕| 国产亚洲综合一区二区三区| 色播在线永久免费视频| 亚洲欧美国产国产一区二区三区| 成年人免费视频观看| 亚洲小说图区综合在线| 国产真人无遮挡作爱免费视频 | 亚洲嫩草影院在线观看| 91九色视频无限观看免费| 亚洲综合亚洲国产尤物| 成年人网站免费视频| 在线观看亚洲AV日韩A∨| 国产美女a做受大片免费| 国产AV无码专区亚洲AV琪琪| 免费A级毛片在线播放不收费| 免费观看又污又黄在线观看| 亚洲中文字幕日产乱码高清app | 国产AV无码专区亚洲AV手机麻豆| 成人精品视频99在线观看免费| 亚洲AV无码一区二区二三区软件| 亚洲一级毛片免费在线观看| 亚洲伊人久久大香线蕉AV| 又粗又黄又猛又爽大片免费| 久久精品国产免费| 亚洲国产综合精品| 免费观看毛片视频| 最近的2019免费中文字幕| 亚洲综合无码一区二区三区| 免费观看的av毛片的网站| 中文字幕在线免费观看视频| 亚洲黄色在线网站| 日本一道高清不卡免费| 野花香高清在线观看视频播放免费 | 99在线精品视频观看免费| 亚洲av永久无码一区二区三区 | 全黄性性激高免费视频|