1、所謂框架是一個類庫的集合,集合框架就是一個用來表示和操作集合的統一框架,包括實現集合的接口和類
2、結合框架中的接口:基類collection派生出set list,set派生出SortedSet。基類map派生出SortedMap.
Collection:集合層次中根接口,jdk沒有提供直接實現這個類的接口。
Set:不能包含重複的元素,set接口是直接collection繼承的,並沒有包含新的方法。
SortedSet:是一個按照升序排序的集合。
List:是一個有序(不是排序,元素是按照順序擺放的)的集合,可以包含重複的元素,提供按照索引訪問的方式。
Map:包含key-value對,map不能包含有重複key。SortedMap:是一個按照升序排序key的map。
3、集合框架中的實現類:
3、
4、迭代器
作用:有的集合類沒有提供get()方法,那麼可以將集合轉換成迭代器方便元素的獲取。
5、Collections類
a、排序(主要針對列表的排序)對list對象排序需要求list對象的元素實現comparable接口。排序結果是自然排序的
或者通過調用sort(list,comparator),需要實現比較器。
b、取最大元素和最小元素Collections.max()和Collections.min();
c、對已排序的列表查找binarySearch();
6、LinkedList類
LinkedList是採用雙向循環鏈表實現的。
可以用LinkedList實現棧,隊列,雙向隊列。
7、arraylist與linkedlist比較
arraylist底層是數組,linkedlist是一般的雙向鏈表
我們經常在list的開始處增加元素,或者在list中插入和刪除操作,我們就選擇linkedlist,否則我們將使用arraylist更加快速。
8、HashSet類
實現set接口的hash table(哈希表),應該其不能有重複的元素,實際上是依靠HashMap來實現的。
因此我們應該爲要存到散列表的各個對象定義hashCode()和equals();
散列表又稱爲哈希表,java是通過負載因子來決定何時對散列表再散列,HashSet的默認負載因子是0.75,負載因子越高,內存使用率越高,元素尋找時間越長,
負載因子越低,內存使用率越低,尋找元素時間越短。
我們一般用HashSet存放蓋對象時對象需要實現HashCode()和equals()方法。
9、TreeSet類
TreeSet是依靠TreeMap來實現的,實現SertedSet接口
TreeSet是有序集合,裏面的元素按照升序排序,缺省是按照自然排序的,這意味着TreeSet裏的元素需要實現comparable接口。
我們可以在TreeSet的構造函數構造對象時,傳遞實現了comparator接口的比較器對象。
10、HashSet與TreeSet的比較
HashSet是基於hash算法實現的,其算法要優於TreeSet,通常情況我們都使用HashSet,只有我們在需要排序功能的時候才使用TreeSet.
11、HashMap
HashMap是實現Map接口的,用來存儲鍵值和值的數據對。
常用到的方法:keySet(),values(),entrySet()。
TreeMap是按照key排序的map
在多線程情況下,一般用vector來實現同步列表,一般情況下基本上ArrayList去代替vector。
HashTable裏面的方法也是同步的,一般用HashMap去代替HashTable,其比用Collections獲取的同步map要快些。