Java 集合类图(转)
1.java集合類圖
1.1
1.2
上述類圖中,實(shí)線邊框的是實(shí)現(xiàn)類,比如ArrayList,LinkedList,HashMap等,折線邊框的是抽象類,比如AbstractCollection,AbstractList,AbstractMap等,而點(diǎn)線邊框的是接口,比如Collection,Iterator,List等。
發(fā)現(xiàn)一個(gè)特點(diǎn),上述所有的集合類,都實(shí)現(xiàn)了Iterator接口,這是一個(gè)用于遍歷集合中元素的接口,主要包含hashNext(),next(),remove()三種方法。它的一個(gè)子接口LinkedIterator在它的基礎(chǔ)上又添加了三種方法,分別是add(),previous(),hasPrevious()。也就是說如果是先Iterator接口,那么在遍歷集合中元素的時(shí)候,只能往后遍歷,被遍歷后的元素不會(huì)在遍歷到,通常無序集合實(shí)現(xiàn)的都是這個(gè)接口,比如HashSet,HashMap;而那些元素有序的集合,實(shí)現(xiàn)的一般都是LinkedIterator接口,實(shí)現(xiàn)這個(gè)接口的集合可以雙向遍歷,既可以通過next()訪問下一個(gè)元素,又可以通過previous()訪問前一個(gè)元素,比如ArrayList。
還有一個(gè)特點(diǎn)就是抽象類的使用。如果要自己實(shí)現(xiàn)一個(gè)集合類,去實(shí)現(xiàn)那些抽象的接口會(huì)非常麻煩,工作量很大。這個(gè)時(shí)候就可以使用抽象類,這些抽象類中給我們提供了許多現(xiàn)成的實(shí)現(xiàn),我們只需要根據(jù)自己的需求重寫一些方法或者添加一些方法就可以實(shí)現(xiàn)自己需要的集合類,工作流昂大大降低。
1.3
Java的集合類主要由兩個(gè)接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,這兩個(gè)接口又包含了一些接口或?qū)崿F(xiàn)類。
?
?
Set和List接口是Collection接口派生的兩個(gè)子接口,Queue是Java提供的隊(duì)列實(shí)現(xiàn),類似于List。
?
?
Map實(shí)現(xiàn)類用于保存具有映射關(guān)系的數(shù)據(jù)(key-value)。
?
Set、List和Map可以看做集合的三大類。
???? List集合是有序集合,集合中的元素可以重復(fù),訪問集合中的元素可以根據(jù)元素的索引來訪問。
???? Set集合是無序集合,集合中的元素不可以重復(fù),訪問集合中的元素只能根據(jù)元素本身來訪問(也是不能集合里元素不允許重復(fù)的原因)。
???? Map集合中保存Key-value對(duì)形式的元素,訪問時(shí)只能根據(jù)每項(xiàng)元素的key來訪問其value。
?
?
Vector:
用ArrayList代替Vector。Vector是線程安全的,而有的時(shí)候我們確實(shí)希望在多線程的情況下使用列表,那么這個(gè)時(shí)候我們可以利用Collections這個(gè)類當(dāng)中為我們提供的synchronizedList(List list),它可以返回一個(gè)線程安全的同步的列表,還提供了返回同步的Collections。
?
Hashtable:
用HashMap代替Hashtable。Hashtable是線程安全的,而有的時(shí)候我們確實(shí)希望在多線程的情況下使用HashMap,那么這個(gè)時(shí)候我們可以利用Collections這個(gè)類當(dāng)中為我們提供的synchronizedMap(Map<K,V> m),它可以返回一個(gè)線程安全的同步的HashMap
Stack:
用LinkedList代替Stack。當(dāng)初在設(shè)計(jì)Stack的時(shí)候就有一些潛在的問題,它是從Vector繼承而來,對(duì)于一個(gè)棧來說,它只能是最后放進(jìn)去的元素,要先出來,但是它繼承自Vector,而Vector中有一個(gè)方法叫做elementAt(int index),而不能說是通過這個(gè)索引index去任意的獲得一個(gè)元素。結(jié)果它就有了這個(gè)奇怪的特性,提倡應(yīng)該自己利用LinkedList去實(shí)現(xiàn)一個(gè)stack。
?
?
對(duì)于Set、List和Map三種集合,最常用的實(shí)現(xiàn)類分別是HashSet、ArrayList和HashMap三個(gè)實(shí)現(xiàn)類。(并發(fā)控制的集合類,以后有空研究下)。
Wayne學(xué)習(xí)園地 http://www.cnblogs.com/Bob-FDfrom:?http://www.cnblogs.com/Bob-FD/archive/2012/09/20/2695437.html
總結(jié)
以上是生活随笔為你收集整理的Java 集合类图(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何将eclipse设置为炫丽的全黑背景
- 下一篇: Java集合总结汇总(链接)