天天看點

容器:集合架構

 Java平台提供了一個全新的集合架構。“集合架構”主要由一組用來操作對象的接口組成。不同接口描述一組不同資料類型。

Java 2集合架構圖

  集合接口:6個接口(短虛線表示),表示不同集合類型,是集合架構的基礎。

  抽象類:5個抽象類(長虛線表示),對集合接口的部分實作。可擴充為自定義集合類。

  實作類:8個實作類(實線表示),對接口的具體實作。

  在很大程度上,一旦您了解了接口,您就了解了架構。雖然您總要建立接口特定的實作,但通路實際集合的方法應該限制在接口方法的使用上;是以,允許您更改基本的資料結構而不必改變其它代碼。

  · Collection 接口是一組允許重複的對象。

  · Set 接口繼承 Collection,但不允許重複,使用自己内部的一個排列機制。

  · List 接口繼承 Collection,允許重複,以元素安插的次序來放置元素,不會重新排列。

  · Map接口是一組成對的鍵-值對象,即所持有的是key-value pairs。Map中不能有重複的key。擁有自己的内部排列機制。

  · 容器中的元素類型都為Object。從容器取得元素時,必須把它轉換成原來的類型。

  Java 2簡化集合架構圖

集合接口

  1.Collection 接口

  用于表示任何對象或元素組。想要盡可能以正常方式處理一組元素時,就使用這一接口。

  (1) 單元素添加、删除操作:

   boolean add(Object o):将對象添加給集合

   boolean remove(Object o): 如果集合中有與o相比對的對象,則删除對象o

  (2) 查詢操作:

   int size() :傳回目前集合中元素的數量

   boolean isEmpty() :判斷集合中是否有任何元素

   boolean contains(Object o) :查找集合中是否含有對象o

   Iterator iterator() :傳回一個疊代器,用來通路集合中的各個元素

  (3) 組操作 :作用于元素組或整個集合

   boolean containsAll(Collection c): 查找集合中是否含有集合c 中所有元素

   boolean addAll(Collection c) : 将集合c 中所有元素添加給該集合

   void clear(): 删除集合中所有元素

   void removeAll(Collection c) : 從集合中删除集合c 中的所有元素

   void retainAll(Collection c) : 從集合中删除集合c 中不包含的元素

  (4) Collection轉換為Object數組 :

   Object[] toArray() :傳回一個内含集合所有元素的array

   Object[] toArray(Object[] a) :傳回一個内含集合所有元素的array。運作期傳回的array和參數a的型别相同,需要轉換為正确型别。