Collection是一個(gè)接口,它主要的兩個(gè)分支是List和Set。如下圖所示:
List和Set都是接口,它們繼承與Collection。List是有序的隊(duì)列,可以用重復(fù)的元素;而Set是數(shù)學(xué)概念中的集合,不能有重復(fù)的元素。List和Set都有它們各自的實(shí)現(xiàn)類。
為了方便,我們抽象出AbstractCollection類來讓其他類繼承,該類實(shí)現(xiàn)類Collection中的絕大部分方法。AbstractList和AbstractSet都繼承與AbstractCollection,具體的List實(shí)現(xiàn)類繼承與AbstractList,而Set的實(shí)現(xiàn)類則繼承與AbstractSet。
另外,Collection中有個(gè)iterator()方法,它的作用是返回一個(gè)Iterator接口。通常,我們通過Iterator迭代器來遍歷集合。ListIterator是List接口所特有的,在List接口中,通過ListIterator()返回一個(gè)ListIterator對(duì)象。
我們首先來閱讀下這些 接口和抽象類以及他們的實(shí)現(xiàn)類中都有哪些方法:
1. Collection
Collection的定義如下:
public interface Collection<E> extends Iterable<E> {}
從它的定義中可以看出,Collection是一個(gè)接口。它是一個(gè)高度抽象出來的集合,包含了集合的基本操作:添加、刪除、清空、遍歷、是否為空、獲取大小等。
Collection接口的所有子類(直接子類和簡(jiǎn)介子類)都必須實(shí)現(xiàn)2種構(gòu)造函數(shù):不帶參數(shù)的構(gòu)造函數(shù)和參數(shù)為Collection的構(gòu)造函數(shù)。帶參數(shù)的構(gòu)造函數(shù)可以用來轉(zhuǎn)換Collection的類型。下面是Collection接口中定義的API:
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式