看一个数组并改变它

时间:2015-02-12 05:06:39

标签: java

我不允许使用任何导入,例如Java.arrays / ArrayLists等。

到目前为止我的代码:

1 个答案:

答案 0 :(得分:0)

问题在于您从未将局部变量arrays设置为newArr。此外,您没有完成创建newArr,因为return语句在for循环完成之前退出方法。 remove方法结束的正确代码是:

Object elementRemoved = null;
for(int i=0;i<arrays.length;i++){
    if(!deleteItem[i]){
        newArr[index++] = arrays[i];
    }
    else {
        elementRemoved = arrays[i];
    }
}
arrays = newArr;
return elementRemoved;

请注意,此代码将删除传递给方法的对象的所有实例。

另一个更正:您正在传递索引,但正在比较值。同时更改上部for循环,以便比较索引而不是值:

for(int i=0;i<arrays.length;i++){
    if(i == element){
        deleteItem[i]=true;
    }
    else{
        deleteItem[i]=false;
        size++;
    }
}

但是,您的测试方法中的索引似乎不正确。如果它们是零索引,则不会得到您声明的结果。实际上,删除2个元素后,第6个索引不存在(只留下6个,最大索引为5个)。