我现在正在使用Java,我正在尝试将数组复制到一个临时数组中,然后再使用新列表重写,但代码无法运行。
MobilePhoneInventory.java
public void delete(MobilePhone p) {
MobilePhone[] temp = new MobilePhone[list.length-1];
int adj = 0;
for (int i = 0; i < list.length; i++) {
if (p != list[i]) {
temp[i-adj] = list[i];
}
else adj = 1;
}
list = temp;
numMobilePhone--;
}
MobilePhoneStart.java
if (e.getSource() == myDelete) {
if (inven.size() > 1) {
inven.delete(inven.get(see));
see--;
if (see < 0) {
see = 0;
}
showMP();
} else {
System.exit(0);
}
}
由于某种原因,它没有创建新列表。有任何想法吗?提前谢谢。
答案 0 :(得分:3)
复制Java数组时,我首选的方法是使用System.arrayCopy
。在您的情况下,您在循环中进行了测试,这实际上可能使您的方法更合适。
如果没有看到课程的其余部分及其可变状态如何工作,则很难确定解决方案。总的来说,它看起来不错。可能在某个地方有一个错误的引用,所以你没有得到你认为你得到的东西。
但值得测试的一件事是你的平等测试是正确的:
if (p != list[i]) {
因为您可能会发现! ... .equals
测试比!=
更可靠。