我们现在学的这个,但是我不会。

解决方案 »

  1.   

    动态的数组不建议使用,要用到ArrayCopy,如果可以的话,建议用hashtable
      

  2.   

    ArrayList就是个动态一样的数组
    说下我的方法吧!
    先new一个数组,然后在每次存放数据的时候,判断数组存放数据已满,满的话,再new一个数组,将原来数组的数据copy到新数组就可以了。
    将新数组length增加为原来的一倍或者一半
      

  3.   

    public class ArrList
    {
    public static int[] resizeArr(int[] arr, int newSize)
    {
    int[] original=arr;
    arr=new int[newSize];
    int length=Math.min(original.length,newSize);
    for(int i=0;i<length;i++)
    arr[i]=original[i];
    original=null;
    return arr;
    }
    public static void println(int[] arr)
    {
    System.out.println("输出数组元素的个数为"+arr.length);
    }
    public static void main(String[] args)
    {
    int[] arr=new int[10];
    for(int i=0;i<arr.length;i++)
    {
    arr[i]=0;
    }
    resizeArr(arr,20);
    println(arr);
    }
    }
    搞定了   但是不知道对不对,各位大虾看一下,那里还需要修改?
      

  4.   

    某些情况下可能会丢失数据哦,当你newSize较小的时候,原数据会丢失。还有就是JDK提供有现成的方法了package test;import java.util.Arrays;
    public class Test { public static int[] resizeArr(int[] objs, int newSize){
    if(objs.length >= newSize){
    System.out.println("新数组的长度不足。");
    return null;
    }

    return Arrays.copyOf(objs, newSize);
    }

    public static void main(String[] args) {
    int[] is = Test.resizeArr(new int[]{1,2,3,4,5}, 10);
    for(int i : is){
    System.out.println(i);
    }
    }
    }