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)比原先需要扩展的数组空间大;
- 下一步就是数组的拷贝;
- 生成的新数组替换原来的数组。达到扩展空间的目的。