【Java類集】_認識類集、Collection介面筆記
3、具體內容
類集作用
類集實際上就是一個動態對象數組,與一般的對象數組不同,類集的對象內容可以任意擴充。
類集的特徵:
1.這種架構是高效能的
2.架構必須允許不同類型的類集以相同的方式和高度互操作方式工作
3.類集必須是容易擴充和修改的
對象數組中包含一組對象,但對象數組使用的時候存在一個長度限制,那麼類集是專門解決這種限制的,使用類集可以方便的向數組增加任意多個資料。
對象數組的操作中基本上都要保證物件類型的一致性,對於類集而言本身其內部的元素也應該保持一致,不管是何種類型的資料,所有的操作方式都應該是一樣的。
類集架構主要介面
No. 介面 描述
1 Collection 是存放一組單值的最大介面,所謂的單值是指集合中的每個元素都是一個對象,一般會很少直接使用此介面直接操作。
2 List 是Collection介面的子介面,也是最常用的介面,此介面對Collection進行了大量的擴充,裡面的內容是允許重複的。
3 Set 是Collection介面的子介面,沒有對Collection介面進行擴充,裡面不允許存放重複內容。
4 Map Map是存放一對值的最大介面,即,介面中的每個元素都是一對,以key->value的形式儲存。
5 Iterator 集合的輸出介面,用於輸出集合中的內容,只能進行從前到後的單向輸出。
6 ListIterator 是Iterator的子介面,可以進行雙向輸出。
7 Enumeration 是最早的輸出介面,用於輸出集合中指定的內容。
8 SortedSet 單值的排序介面,實現此介面的集合類,裡面的內容是可以排序的,使用比較子進行排序。
9 SortedMap 存放一對值的排序介面,實現此介面的集合類,裡面的內容按照key排序,使用比較子排序。
10 Queue 隊列介面,此介面的子類可以實現隊列操作(FIFO, First-In-First-Out)
11 Map.Entry Map.Entry的內部介面,每個Map.Entry對象都儲存著一對key->value的內容,每個Map介面中都儲存多個Map.Entry介面執行個體。
以上的介面必須全部掌握,並且掌握各個介面的主要特點。
介面的繼承關係
Collection介面:
Collection
List Set Queue SortedSet
Map介面:
Map
SortedMap
Collection介面的定義
Collection是儲存單值集合的最大父介面。
Collection介面定義:
public interface Collection<E> extends Iterable<E>
JDK1.5之後為Collection介面增加了泛型聲明
所有的類集操作都存放在java.util包中。
Collection介面的方法定義。
No. 方法 類型 描述
1 public boolean add(E o) 普通 向集合中插入對象
2 public boolean addAll(Collection<? extend E?> c)普通 將一個集合的內容插入進來
3 public void clear() 普通 清楚此集合中的所有元素
4 public boolean contains(Object o) 普通 判斷某一個對象是否在集合中存在
5 public boolean containsAll(Collection<?> c) 普通 判斷一組對象是否在集合中存在
6 public boolean equals(Object o) 普通 對象比較
7 public int hashCode() 普通 雜湊碼
8 public boolean isEmpty() 普通 集合是否為空白
9 public Iterator<E> iterator() 普通 為Iterator介面執行個體化
10 public boolean remove(Object o) 普通 刪除指定對象
11 public boolean removeAll(Collection<?> c) 普通 刪除一組對象
12 public boolean retainAll(Collection<?> c) 普通 儲存指定內容
13 public int size() 普通 求出集合的大小
14 public Object[] toArray() 普通 將一個集合變為對象數組
15 public <T> T[] toArray(T[] a) 普通 指定好返回的對象數群組類型
Collection在EJB 2.x中大量使用了Collection介面,但是隨著發展,sun公司開始將這些標準逐步的正常化,所以在sun一個開源————寵物商店,基本上就不再直接使用Collection,而使用List或Set,這樣來說可以更加清楚的表示出操作的類型。
Collection子介面的定義
Collection介面雖然是集合的最大介面,但是如果直接使用Collection介面進行操作的話,則表示的操作意義不明確,所以在java開發中已經不提倡直接使用Collection介面了,主要的以子介面下:
List介面:可以存放重複內容
Set介面:不能存放重複內容,所有重複內容靠hashCode()和equals()兩個方法區分的。
SortedSet介面:可以對集合中的資料進行排序
Queue列隊介面(FIFO):堆棧列隊