2_Collection

(一)Collection分類體系

image.png

(二)List、Set、Queue子接口

1,Collection體系下面是Set、List、Queue子接口;

  • List:有序集合,值允許有重復;
    我們需要可以自動擴展的數(shù)組,所以有了List;
    List集合可以說與數(shù)組的區(qū)別就在于長度可變,它同樣可以如數(shù)組下標那樣記住每次添加元素的順序,List集合集合中的元素值同樣也可以重復。

  • Set:無序集合,值不允許有重復;
    Set集合與List集合恰好相反:
    1:Set集合是無序的,無法像數(shù)組那樣通過下標找到對應的元素;不是后續(xù)添加到Set中的元素就排在后面,因為沒有排隊這一說。
    2:Set集合的元素是不能重復的,因為本來就沒有順序了,如果還可以重復那就亂到無法管理了。

  • Queue:JDK1.5以后Java提供的隊列實現(xiàn),有點類似于List;


我們需要值沒有重復的數(shù)組,所以有了Set;我們需要自動排序的Set,所以又有了TreeSet;

2,實現(xiàn)類

我們平常用的最多就是它們的實現(xiàn)類,有的實現(xiàn)類并不是直接繼承這三個子接口,也不是只能繼承其中的一個接口而已。

栗子1

根據(jù)源碼,可以知道HashSet是Set接口的實現(xiàn),同時它還繼承了AbstractSet這個父類(該父類也實現(xiàn)了Set接口)

public class HashSet<E>
        extends AbstractSet<E>
        implements Set<E>, Cloneable, java.io.Serializable{
}

public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E> {
}

栗子2

LinkedList類不僅實現(xiàn)了List接口,還實現(xiàn)了Deque接口(Deque接口是Queue接口的子接口)

public class LinkedList<E>
        extends AbstractSequentialList<E>
        implements List<E>, Deque<E>, Cloneable, java.io.Serializable{
}

常用實現(xiàn)類

我們常用的List集合有:Vector、LinkedList、ArrayList;
我們常用的Set集合有:HashSet、TreeSet;

不管是直接還是間接,Vector、LinkedList、ArrayList都實現(xiàn)了List接口;
HashSet、TreeSet都實現(xiàn)了Set接口;
Queue這里暫時不做闡述;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 集合類簡介 為什么出現(xiàn)集合類?面向?qū)ο笳Z言對事物的體現(xiàn)都是以對象的形式,所以為了方便對多個對象的操作,就要對對象進...
    阿敏其人閱讀 1,560評論 0 7
  • Collection接口 Collection接口是所有集合的祖先類。他有兩個構(gòu)造方法,一個無參構(gòu)造,一個是帶Co...
    夜幕繁華閱讀 682評論 0 0
  • Java 集合類是一種特別有用的工具類,大致可分為Set、List、Queue、Map四種體系。 Set代表無序、...
    ifeelok0319閱讀 354評論 0 0
  • 以下是《瘋狂Java講義》中的一些知識,如有錯誤,煩請指正。 集合概述 Java集合可以分為Set、List、Ma...
    hainingwyx閱讀 651評論 0 1
  • 把美夢輸入當下 透支理想主義 風是無法詮釋葉的心悸的 種下的記憶拒絕鐮刀的鋒利 等它鉆進泥土 封鎖了傷悲的消息 挖...
    ZHOU春雨閱讀 310評論 2 9

友情鏈接更多精彩內(nèi)容