原理:
数组扩容,借助一个过渡新数组,新数组长度 = 原数组.length +1,在让原数组指向新数组的存储空间,而原数组原来的存储空间就作废了,arr = arrnew;
此时 arr 的存储空间指向 arrnew 的存储空间,所以 arr 撑大了,下一次循环 arrnew 重新声明,重新开辟一个新的存储空间。
import java.util.Scanner;
public class Array{
public static void main(String[] args){
//数组扩容程序,把键盘输入的数不断的累加到一个声明长度的数组中。
Scanner shuru = new Scanner(System.in);
int arr[] = new int[1]; //需要扩容的数组
int number =0; //循环终止条件
while(number!=9){
int arrnew[] = new int[a.length+1]; //新数组,也是一个过度数组,会不断声明,每次声明数组长度+1,
//此时新数组的长度已经比原数组多一个
for(int i=0;i<a.length;i++){
arrnew[i] = a[i]; //把原数组的数值给新数组
}
number = shuru.nextInt(); //输入一个数
arrnew[arrnew.length-1] = number; //输入的数给新数组,新数组暂时是一个完整数据的数组
arr = arrnew; //新数组把数组给原数组,因为新数组下一次循环会重新声明,值就没了
}
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}