@JAVA 数组动态扩容的方法
数组一但创建以后数组的大小就是固定的,如果想要动态给一个数组进行扩容,就需要在堆中开辟一个新的数组,并且把新数组的地址赋给原变量,这样就可以实现数组的扩容
(不使用ArrayList)
简单的一个替代:
public class TestDemo{
public static void main(string []args)
{
int arr1={1,2,3,4};
int arr2={1,2,3,4,5,6,8,9};
arr1=arr2
System.out.println(Arrays.toString(arr1));
}
}
这样arr1指向的内存位置就变成了arr2;
public class Demo1 {
static int []array=new int [20];
public static void main(String[] args){
array=addLengthArray(array);
for(int i = 0;i<array.length;i++){
array[i]= i;
System.out.println(array[i]);
}
}
public static int[] addLengthArray(int[] array){
int[] newArray = new int [array.length*2];
//将array数组从0位置至array.length位置,复制到newArray数组0位置到array.length位置。
System.arraycopy(array,0,newArray,0,array.length);
return newArray;
}
}
这里使用了System.arraycopy的方法进行了数组的拷贝;