Java集合框架(二)— Collection

Collection架構(gòu)

image.png

Collection是一個接口,是高度抽象出來的集合透典,它包含了集合的基本操作和屬性。

  1. Collection包含了List和Set兩大分支。
    1).List是一個有序的隊列睦袖,每一個元素都有它的索引。第一個元素的索引值是0荣刑。
    List的實現(xiàn)類有LinkedList, ArrayList, Vector, Stack馅笙。
    2). Set是一個不允許有重復(fù)元素的集合伦乔。
    Set的實現(xiàn)類有HashSet和TreeSet。HashSet依賴于HashMap董习,它實際上是通過HashMap實現(xiàn)的烈和;TreeSet依賴于TreeMap,它實際上是通過TreeMap實現(xiàn)的皿淋。

  2. Map是一個映射接口招刹,即key-value鍵值對。Map中的每一個元素包含“一個key”和“key對應(yīng)的value”窝趣。
    AbstractMap是個抽象類疯暑,它實現(xiàn)了Map接口中的大部分API。而HashMap哑舒,TreeMap妇拯,WeakHashMap都是繼承于AbstractMap。
    Hashtable雖然繼承于Dictionary洗鸵,但它實現(xiàn)了Map接口越锈。

Collection的定義如下:

public interface Collection<E> extends Iterable<E> {}

Collection所有 API

abstract boolean         add(E object)
abstract boolean         addAll(Collection<? extends E> collection)
abstract void            clear()
abstract boolean         contains(Object object)
abstract boolean         containsAll(Collection<?> collection)
abstract boolean         equals(Object object)
abstract int             hashCode()
abstract boolean         isEmpty()
abstract Iterator<E>     iterator()
abstract boolean         remove(Object object)
abstract boolean         removeAll(Collection<?> collection)
abstract boolean         retainAll(Collection<?> collection)
abstract int             size()
abstract <T> T[]         toArray(T[] array)
abstract Object[]        toArray()

List

public interface List<E> extends Collection<E> {}

List相比Collection新增的接口

abstract void                add(int location, E object)
abstract boolean             addAll(int location, Collection<? extends E> collection)
abstract E                   get(int location)
abstract int                 indexOf(Object object)
abstract int                 lastIndexOf(Object object)
abstract ListIterator<E>     listIterator(int location)
abstract ListIterator<E>     listIterator()
abstract E                   remove(int location)
abstract E                   set(int location, E object)
abstract List<E>             subList(int start, int end)

Set

public interface Set<E> extends Collection<E> {}

Set的API和Collection完全一樣。

AbstractCollection

public abstract class AbstractCollection<E> implements Collection<E> {}

AbstractCollection是一個抽象類膘滨,它實現(xiàn)了Collection中除iterator()和size()之外的函數(shù)甘凭。
AbstractCollection的主要作用:它實現(xiàn)了Collection接口中的大部分函數(shù)。從而方便其它類實現(xiàn)Collection火邓,比如ArrayList对蒲、LinkedList等,它們這些類想要實現(xiàn)Collection接口贡翘,通過繼承AbstractCollection就已經(jīng)實現(xiàn)了大部分的接口了。

AbstractList

public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {}

AbstractList是一個繼承于AbstractCollection砰逻,并且實現(xiàn)List接口的抽象類鸣驱。它實現(xiàn)了List中除size()、get(int location)之外的函數(shù)蝠咆。
AbstractList的主要作用:它實現(xiàn)了List接口中的大部分函數(shù)踊东。從而方便其它類繼承List。
另外刚操,和AbstractCollection相比闸翅,AbstractList抽象類中,實現(xiàn)了iterator()接口菊霜。

AbstractSet

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

AbstractSet是一個繼承于AbstractCollection坚冀,并且實現(xiàn)Set接口的抽象類。由于Set接口和Collection接口中的API完全一樣鉴逞,Set也就沒有自己單獨的API记某。和AbstractCollection一樣司训,它實現(xiàn)了Set中除iterator()和size()之外的函數(shù)。
AbstractSet的主要作用:它實現(xiàn)了Set接口中的大部分函數(shù)液南。從而方便其它類實現(xiàn)Set接口壳猜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市滑凉,隨后出現(xiàn)的幾起案子统扳,更是在濱河造成了極大的恐慌,老刑警劉巖畅姊,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咒钟,死亡現(xiàn)場離奇詭異,居然都是意外死亡涡匀,警方通過查閱死者的電腦和手機盯腌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陨瘩,“玉大人腕够,你說我怎么就攤上這事∩嗬停” “怎么了帚湘?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長甚淡。 經(jīng)常有香客問我大诸,道長,這世上最難降的妖魔是什么贯卦? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任资柔,我火速辦了婚禮,結(jié)果婚禮上撵割,老公的妹妹穿的比我還像新娘贿堰。我一直安慰自己,他們只是感情好啡彬,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布羹与。 她就那樣靜靜地躺著,像睡著了一般庶灿。 火紅的嫁衣襯著肌膚如雪纵搁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天往踢,我揣著相機與錄音腾誉,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛妄辩,可吹牛的內(nèi)容都是我干的惑灵。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼眼耀,長吁一口氣:“原來是場噩夢啊……” “哼英支!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起哮伟,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤干花,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后楞黄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體池凄,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年鬼廓,在試婚紗的時候發(fā)現(xiàn)自己被綠了肿仑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡碎税,死狀恐怖尤慰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情雷蹂,我是刑警寧澤伟端,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站匪煌,受9級特大地震影響责蝠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜萎庭,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一霜医、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧驳规,春花似錦支子、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叹侄。三九已至巩搏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間趾代,已是汗流浹背贯底。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人禽捆。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓笙什,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胚想。 傳聞我的和親對象是個殘疾皇子琐凭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Java 集合系列02之 Collection架構(gòu) 2018年11月11日 14:17:55qq_群9474051...
    廢棄的root閱讀 337評論 0 2
  • Java集合是java提供的工具包,包含了常用的數(shù)據(jù)結(jié)構(gòu):集合浊服、鏈表统屈、隊列、棧牙躺、數(shù)組愁憔、映射等。Java集合工具包位...
    聶叼叼閱讀 495評論 0 2
  • 作為集合框架層級的根接口孽拷,Collection接口抽象了一組元素的集合吨掌,最大化地提供了通用的集合操作方法。某些集合...
    清風(fēng)流蘇閱讀 560評論 0 0
  • ??在之前的學(xué)習(xí)中我們將Java的集合框架做了一個大致的分類脓恕,對集合的結(jié)構(gòu)有一定的了解膜宋,現(xiàn)在便是由表及里,我們深入...
    卡農(nóng)Canon閱讀 383評論 0 1
  • 坐在去學(xué)校的火車上进肯,我的思緒又開始像那斷了線的風(fēng)箏漫無目的地游蕩激蹲。 我想起了送我去車站的爺爺,前一秒他還呆在我的身...
    是桃桃桃子呀閱讀 296評論 4 4