Java Collection框架位于java.util包下,包含了數組、鏈表、隊列、hash表等數據結構。學習Collection框架可分為以下幾個部分:List接口、Queue接口、Set接口、Map接口、迭代器(Iterator)、工具類(Arrays、Collections)
Collection接口描述的是作為一個集合所應有的所有功能,例如:
添加元素 ==> add()刪除元素 ==> remove()集合大小 ==> size()還使用迭代器模式,抽象出迭代器作為對底層數據接口的封裝,可使用iterator()方法獲取。其子接口包括:List接口、Queue接口、Set接口
List接口描述的是作為一個有序可重復集合所應有的功能。其實現類主要有:
ArrayList ==> 以數組作為內部實現,不是線程安全的LinkedList ==> 以鏈表作為內部實現,不是線程安全的Vector ==> 以數組作為內存實現,因為幾乎在每個方法上都加上了synchronized修飾,所以方法內是線程安全的,但不意味著Vector是線程安全的 - stackoverflow的回答對于迭代器,List接口有其特殊的迭代器實現,用于在循環時刪除元素,可以使用listIterator()方法獲取
Queue接口描述的是作為一個隊列所應有的功能,主要分為兩類:一類是阻塞隊列,一類是雙向隊列 Deque
Set接口描述的是作為一個無序不可重復集合所應有的功能,其實現類主要有:
HashSet ==> 基于HashMap實現LinkedHashSet ==> 基于LinkedHashMap實現TreeSet ==> 基于TreeMap實現Map接口不是Collection接口的子接口,描述的是鍵值對形式的元素集合,實現類主要包括:
HashMap ==> 以hash表作為內部結構,保證查找的時間復雜度為O(1)LinkedHashMapWeakHashMap ==> 數據結構與HashMap相同,使用Reference類實現弱引用HashTableTreeMap ==> 使用紅黑樹作為內部結構Iterator是對迭代器模式的抽象,基本方法包括:
hasNext() ==> 判斷是否有下一個元素next() ==> 獲取下一個元素remove() ==> 刪除本元素Collection框架中的所有集合類都實現了其對應的Iterator,其中只有List接口的實現類能安全使用remove()方法,別的實現類會拋出ConcurrentModificationException異常
Arrays和Collections類提供了許多靜態方法來操作數組和集合,包括數組的排序、查找、復制和集合的復制、獲得synchronized版本等功能
新聞熱點
疑難解答