java6學習---Java 中的集合類

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要快些。

 

 

 

 

 

 

 

 

發佈了17 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章