当前位置: 首页 > 知识库问答 >
问题:

无法识别与ArrayList和FOR循环相关的错误推理,如何修复代码?[副本]

秦德海
2023-03-14

我正在创建一个非常简单的Bank Manager类,它处理许多银行帐户对象--每个对象都使用唯一的accountNumber、accName等创建。这就是创建银行帐户的方式:

package banksystem;

import java.util.*;

public class BankAcc {

    private String accountName;
    private int accountNumber;
    private int accountOverdraft;
    private int currentBalance;

public BankAcc(String accountName, int accountNumber, 
int accountOverdraft, int currentBalance){

    this.accountName = accountName;
    this.accountNumber = accountNumber;
    this.accountOverdraft = accountOverdraft;
    this.currentBalance = currentBalance;
}

public void deposit(int money){this.currentBalance += money;}

public void withdraw(int money){
    int curr = this.currentBalance + this.accountOverdraft;
    if (money < curr){this.currentBalance -= money;}
}

public String accountName(){return this.accountName;}
public int accountNumber(){return this.accountNumber;}
public int getCurrentBalance(){return this.currentBalance;}
public int accountOverdraft(){return this.accountOverdraft;}

}
package banksystem;

import java.util.*;

public class BankMngr {

    private ArrayList<BankAcc> bankAccounts = new ArrayList<>();

public BankMngr(){

    this.bankAccounts = new ArrayList<BankAcc>();
}

public void addBankAcc(String accountName, int accountNumber, int 
accountOverdraft, int currentBalance){

    BankAcc newBankAcc = new BankAcc(accountName, accountNumber, 
    accountOverdraft, currentBalance);

    bankAccounts.add(newBankAcc);
}

public void removeBankAcc(int accountNumber){

    for(BankAcc b: bankAccounts){

        if (b.accountNumber() == accountNumber){bankAccounts.remove(b);}
        else;
    }
}

public String accountsList(){

    String s = "ACCOUNTS UNDER MANAGER:" + "\n";
    for(BankAcc b: bankAccounts){s+= b.accountNumber()+ " " + 
    b.accountName() + "\n";}
    return s;
}
}
package banksystem;

import java.util.*;

public class BankSystem{

public static void main(String[] args) {

    BankMngr ManagerBob = new BankMngr();

    ManagerBob.addBankAcc("John", 1425, 2000, 1000);
    ManagerBob.addBankAcc("Kane", 1358, 4000, 6000);
    ManagerBob.addBankAcc("Kane", 1693, 4000, 6000);
    ManagerBob.addBankAcc("Dave", 1976, 2000, 3500);

    System.out.println(ManagerBob.accountsList());

    ManagerBob.removeBankAcc(1976);

    System.out.println(ManagerBob.accountsList());
}

}

谢了伙计们。

共有1个答案

公孙高畅
2023-03-14

我假设您得到的错误是ConcurrentModificationException。当使用“for each”循环浏览列表时,不应该从列表中删除。

参见:ArrayList的ConcurrentModificationException

 类似资料:
  • 我已经尝试了所有的方法,当我运行MCP时,我仍然会遇到这个问题。 无法识别的选项-Xincgc 我真的很想要任何能帮忙的人。我知道这是针对较旧版本的Java的,所以我只需要一个可以删除它的文件位置。我想看看Minecraft的工作原理。

  • 在VS 2013中,如果我单击以下文件类型,我会不断得到此错误: *.cs *.cshtml *.config *.asax *.html 我最近刚刚更新到Visual Studio 2013 Update 2,并修复了一个兼容性问题,即总是以管理员身份运行“devenv.exe”,因为UAC问题和在windows 8.1中运行服务。然而;我可以在SharpDevelop4.4中打开整个解决方案,

  • 所以当'r'参数为整数5(预期输出)时,我想打印出这样的内容: 这是我目前的代码: 相反,我得到了以下输出: 我知道我不能在"System.out.println(i""j);"行之后添加"break;"。我应该在我当前的代码中修改什么来产生预期的输出?谢谢!

  • 我有下面的一段代码,它正在打印:一些(600)作为输出。 不知道加法是如何在“for”循环中发生的。 在下面,它混淆了“for”循环的代码块内发生的事情以及变量“y”的计算方式。有人能帮忙吗?

  • 我已经将JSTL-1.2.jar添加到项目设置->libraries和war:爆炸->WEB-INF/lib中。我还尝试删除依赖项并设置不同的版本。如果我同时删除<%@taglib%>fmt和c声明,page可以工作(至少不会导致服务器500错误)。 JSP: 依赖关系 最近的一组错误: 错误:Jasper验证器:绝对URI:http://java.sun.com/jsp/jstl/fmt无法在w

  • FileLoaderImportCircularReferenceException:在“/app/config/routing_dev.yml”(“/app/config/routing_dev.yml”)中检测到循环引用 我正在努力做到这一点:http://symfony.com/doc/current/cookbook/routing/custom_route_loader.html#mor