更新時間:2019-12-16 15:51:06 來源:動力節(jié)點 瀏覽2640次
集合類存放的都是對象的引用,而非對象本身,出于表達上的便利,我們稱集合中的對象就是指集合中對象的引用(reference)。

集合類型主要有3種:set(集)、list(列表)和map(映射)。
集合接口分為:Collection和Map,list、set實現(xiàn)了Collection接口
在使用Java的時候,我們都會遇到使用集合(Collection)的時候,但是Java API提供了多種集合的實現(xiàn),我在使用和面試的時候頻頻遇到這樣的“抉擇” 。 :)(主要還是面試的時候)久而久之,也就有了一點點的心得體會,寫出來以供大家討論 。
總的說來,Java API中所用的集合類,都是實現(xiàn)了Collection接口,他的一個類繼承結(jié)構(gòu)如下:
Collection<--List<--Vector<--Stack
Collection<--List<--ArrayList
Collection<--List<--LinkedList
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet<--TreeSet
Vector : 基于Array的List,其實就是封裝了Array所不具備的一些功能方便我們使用,它不可能走出Array的限制。性能也就不可能超越Array。所以,在可能的情況下,我們要多運用Array。另外很重要的一點就是Vector“synchronized”的,這個也是Vector和ArrayList的唯一的區(qū)別。
ArrayList:同Vector一樣是一個基于數(shù)組實現(xiàn)的,但是不同的是ArrayList不是同步的。所以在性能上要比Vector優(yōu)越一些,但是當運行到多線程環(huán)境中時,可需要自己在管理線程的同步問題。
LinkedList:LinkedList不同于前面兩種List,它不是基于Array的,所以不受Array性能的限制。它每一個節(jié)點(Node)都包含兩方面的內(nèi)容:1.節(jié)點本身的數(shù)據(jù)(data);2.下一個節(jié)點的信息(nextNode)。所以當對LinkedList做添加,刪除動作的時候就不用像基于Array的List一樣,必須進行大量的數(shù)據(jù)移動。只要更改nextNode的相關(guān)信息就可以實現(xiàn)了。這就是LinkedList的優(yōu)勢。

以上就是動力節(jié)點Java培訓機構(gòu)小編介紹的“Java培訓教程:Java中集合的區(qū)別”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)文章