我已经编写了此方法来删除值(从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。我认为这不是一个好习惯。您应该将长度存储在变量中并使用它。

10-05 20:31
查看更多