1. Java集合類概述
A.集合的由來a. 處理多個相同數(shù)據(jù)我們采用數(shù)組,但數(shù)組空間固定不能動態(tài)增長,插入或刪除元素比較麻煩。我們使用集合來解決這個問題
b. 集合特點:元素類型可以不同、集合長度可變、空間不固定
c. Java中對一些數(shù)據(jù)結(jié)構(gòu)和算法進(jìn)行了封裝即集合。集合也是一種對象,用于存儲、檢索、和傳輸對象
d. JCF(Java Collections Framework)集合框架。它提供了用于管理集合的接口和類
B.Java集合框架中的三個核心接口:Set、List、Map2.Collection接口和Iterator接口A. 集合(Collection)接口位于Set接口和List接口的最頂層,是Set接口和List接口的父接口。定義了Collection對象共有的一些基本方法,這些方法分為基本操作、批量操作和數(shù)組操作
B. Iterator接口是一種用于遍歷集合的接口。所謂遍歷,是指從集合中取出每一個元素的過程
3. List接口:一列數(shù)據(jù),數(shù)據(jù)內(nèi)容可以重復(fù),以元素安插的次序來放置元素,不會重新排列
A. List接口的實現(xiàn)類具有共同的方法:
add() :向集合中添加元素(增)
remove() :將元素從集合中移除(刪)
get() : 從集合中獲取元素(查)
set():修改集合中的元素(改)
size() :查看集合長度
B.List接口實現(xiàn)類的選擇a. ArrayList:使用最廣泛,集合元素增加或刪除操作不頻繁時使用。最適合查詢
b. LinkedList:當(dāng)需要在集合的中間位置,頻繁增加或刪除元素時使用
c. Vector:與ArrayList類似,但Vector是線程安全的,所以性能要低于ArrayList
4. 泛型:由于集合中保存的元素都是Object類型,當(dāng)一個元素從集合中取出來后都是Object類型的對象,所以我們必須對其進(jìn)行強制類型轉(zhuǎn)換。為了解決這種麻煩,JDK1.5中提供了一種新的處理方式泛型。
如:List<String> list = new ArrayList<String>();
5. for each循環(huán)在JDK1.5中增加了一種新型的循環(huán),稱之為for each循環(huán),該循環(huán)大大簡化了對于集合的遍歷操作
如:for(String a : list){
System.out.PRintln(a);
}
6. Set接口:一列數(shù)據(jù),數(shù)據(jù)內(nèi)容不能重復(fù),使用自己內(nèi)部的一個排列機制放置元素
A. Set接口的實現(xiàn)類具有共同的方法:
add() :向集合中添加元素(增)
remove(Object o) :將元素從集合中移除(刪)
size():查看集合長度
B.Set接口實現(xiàn)類的選擇a. HashSet:速度快,不排序
b. TreeSet:速度慢,排序
7. Map接口:一列數(shù)據(jù)對,使用自己內(nèi)部的一個排列機制放置元素
A. Map接口不是Collection接口的繼承。Map接口用于維護(hù)鍵/值對(key/value pairs)。每個條目包括單獨的兩部分 :
key
Value
B. 在Map中不允許出現(xiàn)重復(fù)的鍵.
C.key 和 value 可以是任何類的實例D.Map接口實現(xiàn)類的共同方法put():將鍵值對存入集合
get():根據(jù)鍵取出元素的值
keySet():將Map中的所有鍵取出形成一個Set
values():將Map中的所有值取出形成一Collection
remove():根據(jù)鍵移除值
E.Map接口實現(xiàn)類的選擇a. HashMap:速度快,不排序
b. TreeMap:速度慢,排序
8.工具類Collections和Arrays
A. Java集合框架中提供了一個操作Set、List和Map等集合的工具類Collections,該工具類中提供了大量方法,用于對集合元素進(jìn)行排序、查詢、修改等操作
B. Java集合框架同時也提供了Arrays類用于操作數(shù)組。Arrays類包含用來操作數(shù)組(比如排序和搜索)的各種方法
9. 古老的集合類與接口
A. Vector、Hashtable、Stack、Properties類以及遍歷器Enumeration接口
B. Vector(向量)與ArrayList的用法幾乎完全相同,二者之間的最大區(qū)別在于Vector類是線程安全的,而ArrayList不是
C. Hashtable與HashMap的用法也幾乎相同,二者的關(guān)系完全類似于Vector與ArrayList的關(guān)系。Hashtable是線程安全的,而HashMap不是。 此外,Hashtable不允許key和value為null,而HashMap是允許的
D. Properties到現(xiàn)在還被頻繁使用的一個類。該類用于處理屬性文件。所謂屬性文件就是將Map形式的鍵/值對數(shù)據(jù)存在一個擴展名為“.properties”的文本文件中,常用作軟件的配置文件
新聞熱點
疑難解答