package com.zidan.test;
import java.util.Arrays;
import java.util.Scanner;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] ss = new int[3];
int index = 0;
System.out.println("输入数值:");
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
while (a != 0) {
if (index >= ss.length) {
ss=arrycopy(ss); //调用扩容方法
}
ss[index++] = a;
System.out.println("下一个:");
a=scanner.nextInt();
}
System.out.println(Arrays.toString(ss));
}
//数组容量的扩容,当空间(.length)不够的时候,增加一
private static int[] arrycopy(int[] ss) {
// TODO Auto-generated method stub
int[] ii = new int[ss.length + 1];
System.arraycopy(ss, 0, ii, 0, ss.length);
return ii;
}
}
在定义数组之后的使用过程中,很容易出现空间不足的情况;
关于解决此问题的主要方法是:
- 创建一个新的数组,不过这个数组的空间(length)比原先需要扩展的数组空间大;
- 下一步就是数组的拷贝;
- 生成的新数组替换原来的数组。达到扩展空间的目的。