ArrayList集合的缺點和解決辦法

2021-10-06 12:27:55 字數 575 閱讀 5018

在arraylist眼中所有的元素型別都是object,所以arraylist不是型別安全的。

arraylist集合在使用值型別資料時,其實就是在不斷地做裝箱和拆箱工作,需進行大量的計算。

裝箱:把值型別打包到object引用型別的乙個例項中

拆箱:指從物件中提取值型別

例如:

foreach(animal item in arrayanimal)

在這行**執行(拆箱)時,只會輸出animal型別的物件。如果在此時arraylist中有其它型別的物件,在執行(run)過程中程式就會報錯。此時的代價就是要麼跳出、要麼執行異常處理。

解決方法:

使用泛型(可以規定元素容納型別的類)來解決問題。泛型使得資料有了規定的型別,那麼在進行裝箱操作時就進行了檢驗,使其按照規定的型別裝箱。避免的上述arraylist型別的安全問題和裝箱拆箱的效能問題。

list類就是arraylist類的泛型的等效類。

例如:

list arraylist=new list();

Java集合 ArrayList集合

以陣列實現。節約空間,但是陣列有容量限制。超出限制時會增加50 容量,用system.arraycopy 複製到新的陣列,因此最好能給出陣列大小的預估值。預設第一次插入元素時建立大小為10 的陣列。按照陣列下標來訪問元素 get i set i,e 的效能很高,這是陣列的基本優勢。直接在陣列末尾加入...

ArrayList 集合詳解

1.底層資料結構是陣列 2.預設陣列大小是10 3.保證了資料的有序性,按照插入順尋來儲存 4.查詢效率高,基於陣列索引來定位資料 5.集合擴容每次擴容為原大小的1.5倍.6.集合資料可以重 trimtosize 作用是去掉預留元素的位置,記憶體緊張的時候用 ensurecapacity int n...

ArrayList集合使用

arraylist 和陣列區別 集合長度可以隨意改變,型別也可以隨意的新增,但陣列不能。集合的方法 arraylist 不是乙個靜態類,所以在使用它之前應例項化該類 arraylist list new arraylist 新增元素 list.add 1 新增集合 list.addrange new...