列表(ArrayList)是對數組(Array)的一個加強,分配數組列表和創建數組的方式如下:
分配數組列表:
new ArrayList(100);
創建數組:
new Employee[100];
兩者之間的區別:
一:空間大小
1、Array的空間大小是固定的,空間不夠時也不能再次申請,所以需要事前確定合適的空間大小。
2、ArrayList的空間是動態增長的,如果空間不夠,它會創建一個空間比原空間大0.5倍的新數組,然后將所有元素復制到新數組中,接着拋棄舊數組。而且,每次添加新的元素的時候都會檢查內部數組的空間是否足夠。
二:存儲內容
1、Array數組可以包含基本類型和對象類型。
2、ArrayList卻只能包含對象類型。
需要注意的是:Array數組在存放的時候一定是同種類型的元素。ArrayList就不一定了,因為ArrayList可以存儲Object。
三:方法
ArrayList作為Array的增強版,當然是在方法上比Array多樣化。比如添加全部addAll()、刪除全部removeAll()、返回迭代器iterator()等。
適用場景:
如果想要保存一些在整個程序運行期間都會存在而且不變的數據,我們可以將它們放進一個全局數組里,但是如果我們單純只是想要以數組的形式保存數據,而不對數據進行增加等操作,只是方便我們進行查找的話,那么,我們就可以選擇ArrayList。
而且還有一個地方是必須知道的,就是如果我們需要對元素進行頻繁的移動或刪除,或者處理的是超大量的數據,那么,使用ArrayList就真的不是一個好的選擇,因為它的效率很低,使用數組進行這樣的動作就很麻煩,那么,我們可以考慮選擇LinkedList。
··············不足之處,望大神評論指教