數(shù)組對于每一門編程語言來說都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當然不同語言對數(shù)組的實現(xiàn)及處理也不盡相同。
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)韓城,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108Java 語言中提供的數(shù)組是用來存儲固定大小的同類型元素。
你可以聲明一個數(shù)組變量,如 numbers[100] 來代替直接聲明 100 個獨立變量 number0,number1,....,number99。
ArrayList 是一個數(shù)組隊列,相當于 動態(tài)數(shù)組。與Java中的數(shù)組相比,它的容量能動態(tài)增長。它繼承于AbstractList,實現(xiàn)了List, RandomAccess, Cloneable, java.io.Serializable這些接口。
ArrayList 繼承了AbstractList,實現(xiàn)了List。它是一個數(shù)組隊列,提供了相關(guān)的添加、刪除、修改、遍歷等功能。
ArrayList 實現(xiàn)了RandmoAccess接口,即提供了隨機訪問功能。RandmoAccess是java中用來被List實現(xiàn),為List提供快速訪問功能的。在ArrayList中,我們即可以通過元素的序號快速獲取元素對象;這就是快速隨機訪問。稍后,我們會比較List的“快速隨機訪問”和“通過Iterator迭代器訪問”的效率。
列表(ArrayList)是對數(shù)組(Array)的一個加強,分配數(shù)組列表和創(chuàng)建數(shù)組的方式如下:
分配數(shù)組列表:
new ArrayList(100);
創(chuàng)建數(shù)組:
new Employee[100];
兩者之間的區(qū)別:
一:空間大小
1、Array的空間大小是固定的,空間不夠時也不能再次申請,所以需要事前確定合適的空間大小。
2、ArrayList的空間是動態(tài)增長的,如果空間不夠,它會創(chuàng)建一個空間比原空間大0.5倍的新數(shù)組,然后將所有元素復(fù)制到新數(shù)組中,接著拋棄舊數(shù)組。而且,每次添加新的元素的時候都會檢查內(nèi)部數(shù)組的空間是否足夠。
二:存儲內(nèi)容
1、Array數(shù)組可以包含基本類型和對象類型。
2、ArrayList卻只能包含對象類型。
需要注意的是:Array數(shù)組在存放的時候一定是同種類型的元素。ArrayList就不一定了,因為ArrayList可以存儲Object。
三:方法
ArrayList作為Array的增強版,當然是在方法上比Array多樣化。比如添加全部addAll()
、刪除全部removeAll()
、返回迭代器iterator()
等。
適用場景:
如果想要保存一些在整個程序運行期間都會存在而且不變的數(shù)據(jù),我們可以將它們放進一個全局數(shù)組里,但是如果我們單純只是想要以數(shù)組的形式保存數(shù)據(jù),而不對數(shù)據(jù)進行增加等操作,只是方便我們進行查找的話,那么,我們就可以選擇ArrayList。
而且還有一個地方是必須知道的,就是如果我們需要對元素進行頻繁的移動或刪除,或者處理的是超大量的數(shù)據(jù),那么,使用ArrayList就真的不是一個好的選擇,因為它的效率很低,使用數(shù)組進行這樣的動作就很麻煩,那么,我們可以考慮選擇LinkedList。
以上就是java中的數(shù)組(Array)與列表(ArrayList)的區(qū)別的詳細內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!