1)java集合框架的層次結(jié)構(gòu)
2)使用Collection接口定義的公用方法對(duì)集合和線性表操作
3)使用Iterator接口遍歷集合
4)使用JDK的增強(qiáng)for循環(huán)替代迭代Iterator進(jìn)行集合遍歷
5)熟悉Set接口,了解何時(shí)及如何使用HashSet,LinkedHashSet或TreeHashSet來(lái)存儲(chǔ)元素
6)使用Comparator接口來(lái)比較元素
7)熟悉List接口,了解何時(shí)以及如何使用ArrayList或者LinkedList來(lái)存儲(chǔ)元素 8)區(qū)分Vector與ArrayList,并了解如何使用Vector和Stack
9)使用JDK1.5的一般類(lèi)型來(lái)簡(jiǎn)化程序設(shè)計(jì)
10)理解Collection和Map的區(qū)別,知道何時(shí)及如何使用HashMap,LinkedHashMap,TreeHashMap來(lái)存儲(chǔ)
11)使用Collections類(lèi)中的靜態(tài)方法 12)使用Arrays類(lèi)中的靜態(tài)方法
以上就是java集合框架的內(nèi)容,如果你對(duì)哪一條不熟悉,說(shuō)明需要好好的看看。
---------------------------------------------------------------------------------------------------------------------------------------------------
java集合架構(gòu)支持3種類(lèi)型的集合:規(guī)則集(Set),線性表(List),和圖(Map),分別定義在Set,List,Map中。Set實(shí)例存儲(chǔ)一組互不相同的元素(集合),List實(shí)例存儲(chǔ)一組順序排列的元素(表),Map存儲(chǔ)一組 對(duì)象---關(guān)鍵值的映射
總的架構(gòu)如下,非常重要,包含繼承關(guān)系,實(shí)現(xiàn)的分類(lèi),一目了然:
Collection接口:
Set接口:
HashSet具體類(lèi)
LinkedHashSet具體類(lèi)
TreeSet具體類(lèi)
List接口: ArrayList具體類(lèi)
LinkedList具體類(lèi)
向量類(lèi)Vector具體類(lèi)
Stack具體類(lèi)
Map接口: HashMap類(lèi)
LinkedHashMap類(lèi)
TreeMap類(lèi) ---------------------------------------------------------------------------------------------------------------------------------------------------
1)先來(lái)說(shuō)Collection接口,它是處理對(duì)象集合的根接口,提供了一些公用方法,size,Iterator,add,remove什么的
2)Set和List接口都擴(kuò)展自Collection,Set就是高中數(shù)學(xué)里所說(shuō)的集合,不允許重復(fù),無(wú)序。List就像一個(gè)表,可以重復(fù),元素在表里有順序的放著。
3)然后來(lái)說(shuō)Set接口的3種實(shí)現(xiàn):
HashSet的對(duì)象必須實(shí)現(xiàn)hashCode方法,javaAPI大多數(shù)類(lèi)實(shí)現(xiàn)了hashCode方法。 LinkedHashSet實(shí)現(xiàn)了對(duì)HashSet的擴(kuò)展,支持規(guī)則集內(nèi)元素的排序,在HashSet中元素是沒(méi)有順序的,而在LinkedHashSet中,可以按元素插入集合的順序進(jìn)行提取 TreeSet保證集中的元素是有序的,有2種方法可以實(shí)現(xiàn)對(duì)象之間的可比較性:1,添加到TreeSet的對(duì)象實(shí)現(xiàn)了Comparable接口;2,給規(guī)則集的元素指定一個(gè)比較器(Comparator)
使用提示:
如果希望按照元素插入集合的順序進(jìn)行提取元素,用LinkedHashSet,它的元素按添加的順序存儲(chǔ)
如果沒(méi)有上述需求,應(yīng)該用HashSet,它的效率比LinkedHashSet高
LinkedHashSet只是按照添加的的先后順序在存儲(chǔ)時(shí)保持順序,要給集合元素添加順序?qū)傩?,需要使用TreeSet(集合元素有排序關(guān)系)。
4)再來(lái)說(shuō)List的幾種實(shí)現(xiàn)
最重要的的當(dāng)然是ArrayList(不同步)和LinkedList,一個(gè)使用數(shù)組實(shí)現(xiàn)的動(dòng)態(tài)擴(kuò)展容量的list,一個(gè)是鏈?zhǔn)綄?shí)現(xiàn)的list。
還有就是Vector(同步)類(lèi),它除了包含訪問(wèn)和修改向量的同步方法之外,跟ArrayList一樣。
最后就是Stack類(lèi),它繼承自Vector類(lèi),,但一般只作為棧的功能來(lái)使用,不要去使用Vector里面的功能
5)Map
Map是映射,跟前面的Set和List有本質(zhì)的區(qū)別。
散列圖HashMap,鏈?zhǔn)缴⒘袌DLinkedHashMap,樹(shù)形圖TreeHashMap是映射的3種實(shí)現(xiàn),從名字上來(lái)說(shuō),有了上述Set的3種實(shí)現(xiàn)的分析,這個(gè)也是類(lèi)似的。
HashMap:效率高 LikedHashMap:按照添加順序存儲(chǔ),可以按添加順序取出 TreeHashMap:排序性
---------------------------------------------------------------------------------------------------------------------------------------------------
Collections類(lèi)和Arrays類(lèi):
Collections類(lèi)(注意不是Collection):提供了許多靜態(tài)的方法來(lái)管理集合,線性表(大多數(shù)是來(lái)操作線性表的,比如對(duì)線性表復(fù)制,排序之類(lèi)的,參見(jiàn)API)
Arrays類(lèi):提供了對(duì)數(shù)組排序,查找,比較,填充元素的各種靜態(tài)方法。
----------------------------------------------------------------------------------------------------------------------------------------------------
一般類(lèi)型的使用:
是指在java集合中使用泛型來(lái)指定添加元素的類(lèi)型:
HashMap<K,V> map = new HashMap<K,V>() 其中K,V是兩個(gè)類(lèi)類(lèi)型,表明這里只能填充k,v類(lèi)型的對(duì)象
另外集合中只能添加對(duì)象,對(duì)于基本數(shù)據(jù)類(lèi)型,會(huì)自動(dòng)轉(zhuǎn)型為對(duì)應(yīng)的包裝類(lèi)。
--------------------------------------------------------------------------------------------------------------------------------------------------
|