import java.util.Arrays;java
public class ArrayDemo05 {
static int[] srcArr;
public static void main(String[] args) {
srcArr = new int[] {11, 22, 33, 44};
System.out.println(Arrays.toString(srcArr));
add(55);
System.out.println(Arrays.toString(srcArr));
add(66);
System.out.println(Arrays.toString(srcArr));
insert(srcArr.length, 100);
System.out.println(Arrays.toString(srcArr));
remove(6);
System.out.println(Arrays.toString(srcArr));
System.out.println(get(0));
set(1, 200);
System.out.println(Arrays.toString(srcArr));
}
/*
* 動態擴容的原理
* 往數組中動態添加一個元素
* 返回值類型: void
* 參數列表: int num
* 方法名: add
*/
/*public static void add(int num) {
// 利用System.arraycopy方法處理
int[] descArr = new int[srcArr.length + 1];
// 複製數組
System.arraycopy(srcArr, 0, descArr, 0, srcArr.length);
// 將num賦值到目標數組的最後一個位置
descArr[descArr.length - 1] = num;
// 地址傳遞
srcArr = descArr;
}*/
public static void add(int num) {
int[] descArr = Arrays.copyOf(srcArr, srcArr.length + 1);
descArr[descArr.length - 1] = num;
srcArr = descArr;
}
/*
* 往數組的任意位置插入一個元素
* 返回值類型: void
* 參數列表: int index, int num
* 方法名: insert
*/
public static void insert(int index, int num) {
int[] descArr = new int[srcArr.length + 1];
System.arraycopy(srcArr, 0, descArr, 0, index);
descArr[index] = num;
System.arraycopy(srcArr, index, descArr, index + 1, srcArr.length - index);
srcArr = descArr;
}
/*
* 將數組中的某個索引處的元素刪除
* 返回值類型: void
* 參數列表: int index
* 方法名: remove
*/
public static void remove(int index) {
int[] descArr = new int[srcArr.length - 1];
System.arraycopy(srcArr, 0, descArr, 0, index);
System.arraycopy(srcArr, index + 1, descArr, index, descArr.length - index);
srcArr = descArr;
}
/*
* 找出數組中的某個索引處的元素
* 返回值類型: int
* 參數列表: int index
* 方法名: get
*/
public static int get(int index) {
return srcArr[index];
}
/*
* 找出數組中的某個索引處的元素
* 返回值類型: void
* 參數列表: int index , int num
* 方法名: set
*/
public static void set(int index, int num) {
srcArr[index] = num;
}
}
數組