回 帖 发 新 帖 刷新版面

主题:arraycopy()

大家好,我是JAVA初学者,遇到了下面的问题,请高手赐教。
public class TestArrayList{
    public static void main(){
    }
}
class MyArrayList{
    private Object os[]=new Object[3];
    private int index;
    //把对象o放入集合最后位置
    public void add(Object o){
        if(index==os.length) expand();
        os[index]=o;
        index++;
    }
    //把对象o放入集合指定的位置
    public void add(int pos,Object o){
        if(index==os.length) expand();
        for(int i=index;i>pos;i--){
            os[i]=os[i-1];
        }
        index++;
        os[pos]=o;
    }
    //根据下标获得相应位置的元素
    public Object get(int pos){
        return os[pos];
    }
    //根据元素或者下标,如果元素不存在,返回-1
    public int indexOf(Object o){
        for(int i=0;i<index;i++){
            if(o.equals(os[i])) return i;
        }
        return -1;
    }
    //判断元素是否存在
    public boolean contains(Object o){
        int i=indexOf(o);
        return i!=-1;
    }
    //返回集合中元素的数量
    public int size(){
        return index;
    }
    //从数组中删掉指定下标的元素
    public void remove(int pos){
        index--;
        for(int i=pos;i<index;i++){
            os[i]=os[i+1];
        }
    }
    private void expand(){
        Object  os2[]=new Object[os.length*2];
       [color=FF0000]System.arraycopy(os,0,os2,os.length);[/color]
        os=os2;
    }
}
运行出错,是arraycopy()出了问题,大家帮忙看看,

回复列表 (共2个回复)

沙发

能帮我看看我的吗?谢谢!

板凳

参数个数不对。应该是System.arraycopy(os,0,os2,os.length,os.length);

我来回复

您尚未登录,请登录后再回复。点此登录或注册