-2
我已经实现了这两种方法来从正面和背面删除元素。我没能到哪我做错了,但我对任何一种方法ArrayList删除没有集合或导入
public T removefirst() {
if (size == 0) {
return null;
}
T removed = backingArray[0];
for (int i = 0; i < size(); i++) {
backingArray[i] = backingArray[i + 1];
}
size--;
return removed;
}
public T removelast() {
if (size == 0) {
return null;
}
T removed = backingArray[size - 1];
backingArray[size - 1] = null;
size--;
return removed;
}
它是如何失败?你做了什么调试?预期结果与实际结果有什么区别?我们需要更多信息。 – Carcigenicate
在HW阵列中运行的Junit测试首先在元素[5]上有所不同; 预期:null Actual:5a – MLuser
在'removefirst()'中,您正在使用size()方法调用作为循环限制而不是像其他地方那样使用size(成员字段访问)这是错误的,除非size()总是返回size。另外,如果'size()'恰好返回'backingArray'的确切大小,则会从'backingArray [i + 1]'中得到'ArrayIndexOutOfBoundsException'。 'removelast()'似乎对我很好;没有明显的错误脱颖而出... –