如何从方法中的数组中删除值?

时间:2016-11-06 23:48:17

标签: java arrays methods

我已经编写了这种方法来删除一个值(来自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
}

这是从数组中删除元素的正确方法吗?

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。

  • 您在每次迭代中调用accounts.length两次。我认为这不是一个好习惯。您应该将长度存储在变量中并使用它。