數組的擴容和縮容

動態擴容數組

* 1.使用for循環複製元素擴容索引

* 缺陷: 拷貝一部分元素須要計算索引,比較複雜源碼

* 2.System.arraycopy()擴容for循環

* 缺陷: 拷貝數組的一部分到目標數組,若是長度超過了目標數組的索引,會拋出異常循環

* 3.Arrays.copyOf擴容方法

* 觀察copyOf方法的源碼:異常

* public static int[] copyOf(int[] original, int newLength) {static

* int[] copy = new int[newLength];copy

* System.arraycopy(original, 0, copy, 0,co

* Math.min(original.length, newLength));

* return copy;

* }

* 4.利用Object類中一個 clone 方法,該方法是真正意義上的複製數組

 

public static void main(String[] args) {

int[] src = { 11, 22, 33, 44 };

int[] desc = new int[10];

 

// 1.使用for循環複製元素擴容

// for (int i = 0; i < src.length; i++) {

// desc[i] = src[i];

// }

// System.out.println(Arrays.toString(desc));

 

// 2.System.arraycopy()擴容

// System.arraycopy(src, 0, desc, 7, src.length); // 數組越界

// System.out.println(Arrays.toString(desc));

// 3.Arrays.copyOf擴容

int[] descArr = Arrays.copyOf(src, src.length + 5);

System.out.println(Arrays.toString(descArr));

}

相關文章
相關標籤/搜索