我已经编写了此方法来删除值(从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
}
这是从数组中删除元素的正确方法吗?
最佳答案
您用于删除元素的代码是错误的。另外,我建议您使用List。因为如果从数组中删除一个元素,则需要将删除后的所有元素的索引都更改为-1。此外,数组将具有空白值,这将导致问题。
将您的代码更新为列表。应该是这样的-
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。
您在每次迭代中两次调用account.length。我认为这不是一个好习惯。您应该将长度存储在变量中并使用它。