如何让数组一旦存满,就生成一个新的更大的同名数组,并将原数组的元素复制到新的数组?

解决方案 »

  1.   

    int[] src = new int[1];//源
    int[] dest = new int[2];//目标
    System.arraycopy(src, 0, dest, 0, src.length);//将源复制到目标
      

  2.   

    T[] java.util.Arrays.copyOf(T[] original, int newLength)
      

  3.   

    大概是这样的,但是泛型我不会写,用Object代替??class CMyIntList{
      private final static int DEFAULT_SIZE=100;
      private int[] m_aintData=new int[DEFAUL_SIZE];
      private int m_intCount=0;  public add(int intNew){
         if (m_intCount>=m_aintData.length){
    int[] m_aintNewData=new int[m_intData.length*2];
    System.arrayCopy(m_aintData,0,m_aintNewData,0,m_intData.length);
    m_aintData=m_aintNewData;
     }
     m_aintData[m_intCount-1]=intNew;
      }  public int[] toArray(){
      return m_aintData;
      }  public int get(int intIndex){
      return m_aintData[intIndex];
      }  public void set(int intIndex,int intValue){
      m_aintData[intIndex]=intValue;
      }  public int length(){
      return m_intCount;
      }
    }
      

  4.   

    单纯用数组是肯定不行的。要是你要求比较古怪的话,可以自己写一个数据结构。按照某种规律自动增长数组的长度。
    java有现成的数据结构可以解决问题,为什么你非要否定呢?
      

  5.   

    自己完全可以实现一个ArrayList,底层只是是数组.所有容器类底层都是数组实现,楼主可以实现任意自己想要的容器类,祝楼主好运.