數(shù)組和集合區(qū)別

數(shù)組Array和集合的區(qū)別:

(1)數(shù)組是大小固定的,并且同一個數(shù)組只能存放類型一樣的數(shù)據(jù)(基本類型/引用類型)

(2)JAVA集合可以存儲和操作數(shù)目不固定的一組數(shù)據(jù)。

(3)若程序時不知道究竟需要多少對象,需要在空間不足時自動擴(kuò)增容量,則需要使用容器類庫,array不適用。

聯(lián)系:使用相應(yīng)的toArray()和Arrays.asList()方法可以回想轉(zhuǎn)換。

一.集合的體系結(jié)構(gòu):

List、Set、Map是這個集合體系中最主要的三個接口。

List和Set繼承自Collection接口。 Map也屬于集合系統(tǒng),但和Collection接口不同。

Set不允許元素重復(fù)。HashSet和TreeSet是兩個主要的實(shí)現(xiàn)類。Set

只能通過游標(biāo)來取值,并且值是不能重復(fù)的。

List有序且允許元素重復(fù)。ArrayList、LinkedList和Vector是三個主要的實(shí)現(xiàn)類。

ArrayList 是線程不安全的, Vector 是線程安全的,這兩個類底層都是由數(shù)組實(shí)現(xiàn)的 LinkedList 是線程不安全的,底層是由鏈表實(shí)現(xiàn)的

Map

是鍵值對集合。其中key列就是一個集合,key不能重復(fù),但是value可以重復(fù)。 HashMap、TreeMap和Hashtable是Map的三個主要的實(shí)現(xiàn)類。 HashTable 是線程安全的,不能存儲null值

HashMap 不是線程安全的,可以存儲null值

二.List和ArrayList的區(qū)別

1.List是接口,List特性就是有序,會確保以一定的順序保存元素.

ArrayList是它的實(shí)現(xiàn)類,是一個用數(shù)組實(shí)現(xiàn)的List.

Map是接口,Map特性就是根據(jù)一個對象查找對象.

HashMap是它的實(shí)現(xiàn)類,HashMap用hash表實(shí)現(xiàn)的Map,就是利用對象的hashcode(hashcode()是Object的方法)進(jìn)行快速散列查找.(關(guān)于散列查找,可以參看<<數(shù)據(jù)結(jié)構(gòu)>>)

2.一般情況下,如果沒有必要,推薦代碼只同List,Map接口打交道.

比如:List

list =newArrayList();

這樣做的原因是list就相當(dāng)于是一個泛型的實(shí)現(xiàn),如果想改變list的類型,只需要:

List

list =newLinkedList();//LinkedList也是List的實(shí)現(xiàn)類,也是ArrayList的兄弟類

這樣,就不需要修改其它代碼,這就是接口編程的優(yōu)雅之處.

另外的例子就是,在類的方法中,如下聲明:

privatevoiddoMyAction(List

list){}

這樣這個方法能處理所有實(shí)現(xiàn)了List接口的類,一定程度上實(shí)現(xiàn)了泛型函數(shù).

3.如果開發(fā)的時候覺得ArrayList,HashMap的性能不能滿足你的需要,可以通過實(shí)現(xiàn)List,Map(或者Collection)來定制你的自定義類.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,806評論 18 399
  • java筆記第一天 == 和 equals ==比較的比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量...
    jmychou閱讀 1,658評論 0 3
  • 1.Java集合框架是什么?說出一些集合框架的優(yōu)點(diǎn)? 每種編程語言中都有集合,最初的Java版本包含幾種集合類:V...
    獨(dú)念白閱讀 885評論 0 2
  • 作者:巖水晴空初入夢
    巖水晴空初入夢閱讀 128評論 0 0
  • 到底以后會嫁給誰 這樣的期待而且無法預(yù)料 像抽獎不知道獎品一樣 讓人隱隱感覺有些小興奮
    人間顏色如塵土閱讀 143評論 0 0

友情鏈接更多精彩內(nèi)容