日期:2014-05-20  浏览次数:20803 次

java 静态数组,怎么动态的增加大小
java 静态数组,怎么动态的增加大小
  就是每次都判断这个数组是否满了,如果满了,就重新新建个数组,然后再把原来的数组,复制过去

------解决方案--------------------
自动增长数组
Java code


public class ArrayExp{
    private Object[] data ;
    private int index=0;
    public ArrayExp(int size){ //创建链表大小
        data=new Object[10];
    }
    private void expand(){ //扩充
        Object[] data2=new Object[data.length*2];
        System.arraycopy(data,0,data2,0,data.length);
        data=data2;
    }
    public void add(Object o){ //添加
        if (data.length==index) expand();
        data[index]=o;
        index++;
    }
    public void add(int pos,Object o){ //在指定位置添加
        if (data.length==index) expand();
        for(int i=index;i>pos;i--){
            data[i]=data[i-1];
        }
        data[pos]=o;
        index++;
    }
    
    public void change(int pos,Object o){ //替换
        data[pos]=o;
    }
    
    public Object remove(int pos){  //删除
        Object o=data[pos];
        index--;
        for(int i=pos;i<index;i++){
            data[i]=data[i+1];
        }
        return o;
    }
    public int size(){  //返回大小
        return index;
    }
    public Object get(int pos){ //返回指定位置值
        return data[pos];
    }
    public void clear(){   //清除 
        index=0;
    }
    public boolean isEmpty(){ //置空
        return index==0;
    }
    public Object[] toArray(){ //返回数组 
        return data; 
    }
}