我已经编写了这种方法来删除一个值(来自accounts数组的帐户)。
public boolean removeAccount(BankAccount accountNumber){
for(int i = accounts.length - 1; i >= 0; i--) {
if(accounts[i] == accounts.length+1) {
accounts.length;
}
return -1
}
这是从数组中删除元素的正确方法吗?
答案 0 :(得分:1)
您用来删除元素的代码是错误的。另外,我建议您使用List.Since如果从数组中删除元素,则需要将删除元素后面的所有元素的索引更改为-1。此外,数组将具有空白值,这将导致问题。
将代码更新为List。它应该是这样的 -
public void removeAccount(BankAccount accountNumber,ArrayList accounts)
{
int length = accounts.size();
for(int i = 0; i<length; i++)
{
if(accountNumber.equals(accounts.get(i))) //*
{
accounts.remove(i);
break;
}
}
}
在您的代码中,您永远不会比较对象。您正在将对象与整数进行比较。
此外,在循环方法第一次迭代的代码中,将返回-1。