我不允许使用任何导入,例如Java.arrays / ArrayLists等。
到目前为止我的代码:
答案 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个)。