程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 全面接觸Java集合框架

全面接觸Java集合框架

編輯:JAVA編程入門知識

  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的型別相同,需要轉換為正確型別。
  
  此外,您還可以把集合轉換成其它任何其它的對象數組。但是,您不能直接把集合轉換成基本數據類型的數組,因為集合必須持有對象。
  
  “斜體接口方法是可選的。因為一個接口實現必須實現所有接口方法,調用程序就需要一種途徑來知道一個可選的方法是不是不受支持。假如調用一種可選方法時,一個 UnsupportedOperationException 被拋出,則操作失敗,因為方法不受支持。此異常類繼續 RuntimeException 類,避免了將所有集合操作放入 try-catch 塊。”
  
  Collection不提供get()方法。假如要遍歷Collectin中的元素,就必須用Iterator。
  
  1.1.AbstractCollection 抽象類
  
  AbstractCollection 類提供具體“集合框架”類的基本功能。雖然您可以自行實現 Collection 接口的所有方法,但是,除了iterator()和size()方法在恰當的子類中實現以外,其它所有方法都由 AbstractCollection 類來提供實現。假如子類不覆蓋某些方法,可選的如add()之類的方法將拋出異常。
  
  1.2.Iterator 接口
  
  Collection 接口的iterator()方法返回一個 Iterator。Iterator接口方法能以迭代方式逐個訪問集合中各個元素,並安全的從Collection 中除去適當的元素。
  
  
  
  (1) boolean hasNext(): 判定是否存在另一個可訪問的元素
  
  Object next(): 返回要訪問的下一個元素。假如到達集合結尾,則拋出NoSUChElementException異常。
  
  (2) void remove(): 刪除上次訪問返回的對象。本方法必須緊跟在一個元素的訪問後執行。假如上次訪問後集合已被修改,方法將拋出IllegalStateException。
  
  “Iterator中刪除操作對底層Collection也有影響。”
  
  迭代器是 故障快速修復(fail-fast)的。這意味著,當另一個線程修改底層集合的時候,假如您正在用 Iterator 遍歷集合,那麼,Iterator就會拋出 ConcurrentModificationException (另一種 RuntimeException異常)異常並馬上失敗。 2.List接口
  
  List 接口繼續了 Collection 接口以定義一個答應重復項的有序集合。該接口不但能夠對列表的一部分進行處理,還添加了面向位置的操作。
  
  
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved