在閱讀arraylist的jdk原始碼的時候,你經常會看到這兩個系統函式
①arrays.copyof(elementdata, size);
而這個方法的原始碼是:
public static t copyof(t original, int newlength)
public static t copyof(u original, int newlength, class extends t> newtype)
估計很多人看到這裡來了很多人就沒有耐心看了,在這裡我就說說這個方法
arrays.copyof(elementdata, size);實際上是乙個擴容的方法,將elementdata這個陣列的大小複製成size大小另乙個陣列。返回乙個新的陣列。陣列裡面原來有的元素不變,而其他的元素使用null來進行填充。
②system.arraycopy(elementdata, 0, elementdata, 0, size);
這個函式是system類裡面定義的乙個方法,在這裡我寫了乙個測試的方法,
public class testsystemarray ;
/*** arr:源陣列
* 0:從源陣列的第0個位置開始複製,
* arr:目標陣列
* 3:從目標陣列的第三個位置覆蓋
* 3:複製的長度為3個
*/system.arraycopy(arr, 0, arr, 3, 3);
system.out.println("---------複製出來的新的陣列---------");
for(int i=0;i執行的結果;
由此就知道了這個函式的真正的意思了。
手寫ArrayList集合
最近仔細的研究了下集合框架的原始碼,並完全手寫下來,這裡將每一步的進展記錄下來,歡迎指點。arraylist的構造器,分別為無參構造器 傳入初始大小的有參構造器 傳入乙個集合型別的有參構造器,這裡只介紹前面兩種常用的構造器。無參構造器 arraylist的底層實際就是使用陣列來實現的,我們建立乙個陣...
手寫ArrayList入門
arraylist是集合的一種實現,實現了介面list,list介面繼承了collection介面。collection是所有集合類的父類。arraylist使用非常廣泛,不論是資料庫表查詢,excel匯入解析,還是 資料爬取都需要使用到,了解arraylist原理及使用方法顯得非常重要。那麼arr...
Java集合 ArrayList集合
以陣列實現。節約空間,但是陣列有容量限制。超出限制時會增加50 容量,用system.arraycopy 複製到新的陣列,因此最好能給出陣列大小的預估值。預設第一次插入元素時建立大小為10 的陣列。按照陣列下標來訪問元素 get i set i,e 的效能很高,這是陣列的基本優勢。直接在陣列末尾加入...