首先,我們先看一下Collection集合的基本結構:
1、Collection接口
Collection是最基本集合接口,它定義了一組允許重復的對象。Collection接口派生了兩個子接口Set和List,分別定義了兩種不同的存儲方式,如下:
2、 Set接口
Set接口繼承於Collection接口,它沒有提供額外的方法,但實現了Set接口的集合類中的元素是無序且不可重復。
特征:無序且不可重復。
3、 List接口
List接口同樣也繼承於Collection接口,但是與Set接口恰恰相反,List接口的集合類中的元素是對象有序且可重復。
特征:有序且可重復。
兩個重要的實現類:ArrayList和LinkedList
1.ArrayList特點是有序可重復的
2.LinkedList是一個雙向鏈表結構的。
4、Map接口
Map也是接口,但沒有繼承Collection接口。該接口描述了從不重復的鍵到值的映射。Map接口用於維護鍵/值對(key/value pairs)。
特征:它描述了從不重復的鍵到值的映射。
兩個重要的實現類:HashMap和TreeMap
1.HashMap,中文叫散列表,基於哈希表實現,特點就是鍵值對的映射關系。一個key對應一個Value。HashMap中元素的排列順序是不固定的。更加適合於對元素進行插入、刪除和定位。
2.TreeMap,基於紅黑書實現。TreeMap中的元素保持着某種固定的順序。更加適合於對元素的順序遍歷。
5、Iterator接口
Iterator接口,在C#里有例外一種說法IEnumerator,他們都是集合訪問器,用於循環訪問集合中的對象。
所有實現了Collection接口的容器類都有iterator方法,用於返回一個實現了Iterator接口的對象。Iterator對象稱作迭代器,Iterator接口方法能以迭代方式逐個訪問集合中各個元素,並可以從Collection中除去適當的元素。
<span style="font-size:10px;">Iterator it = collection.iterator(); // 獲得一個迭代子 while(it.hasNext()) { Object obj = it.next(); // 得到下一個元素 } </span>
6、Comparable接口
Comparable可以用於比較的實現,實現了Comparable接口的類可以通過實現comparaTo方法從而確定該類對象的排序方式。