You need to enable JavaScript to run this app. Java ArrayList银行账户搜索不到、存款提示无效问题排查
优惠活动
大模型
产品
解决方案
定价
更多

Java ArrayList银行账户搜索不到、存款提示无效问题排查

问题根因

账号永远匹配不到的核心原因:你维护了两个完全独立、无任何关联的ArrayList,存储和搜索的路径完全不互通:

  • main方法中你手动创建了临时列表accountList,所有硬编码的银行账户都被存入了这个列表
  • 负责搜索、存款逻辑的myBank实例(Bank类对象),内部自带独立的list成员属性,这个属性从对象初始化后就一直是空的,没有存入任何账户
    Bank的搜索方法只会遍历自己内部持有的空列表,自然永远匹配不到你输入的账号,固定触发“无效账号”提示,和你之前的判断完全一致。

具体修复步骤

1. 移除冗余的独立存储列表

删掉main方法中所有和临时accountList相关的代码:

// 以下代码全部删除
ArrayList<BankAccount> accountList = new ArrayList<>();
accountList.add(new BankAccount("123","Susan Richards"));
accountList.add(new BankAccount("44567109","Delroy Jacobs"));
accountList.add(new BankAccount("46376205","Sumana Khan"));

当前的类结构本来就是设计成由Bank类统一管理所有账户的,不需要在main方法里并行维护一套独立的存储列表。

2. 通过Bank类自带方法存入账户

Bank类已经封装了addAccount方法,会自动将新账户存入它内部用于搜索的列表,替换掉原来直接new账户塞入临时列表的逻辑:

// 硬编码创建账户,直接存入Bank的内部存储
myBank.addAccount("123","Susan Richards");
myBank.addAccount("44567109","Delroy Jacobs");
myBank.addAccount("46376205","Sumana Khan");

执行完这段代码后,Bank内部的搜索列表就会存在3个有效账户,匹配逻辑可以正常识别输入的账号。

3. 补充全量账户遍历能力

因为你最后需要打印所有账户的完整信息,但目前Bank类没有提供获取全量账户的方法,在Bank类中补充如下方法即可:

// 返回内部存储的账户副本,避免外部直接修改内部存储结构
public ArrayList<BankAccount> getAllAccounts() {
    return new ArrayList<>(list);
}

4. 调整账户信息打印逻辑

把原来遍历临时accountList的循环,改成遍历Bank返回的全量账户列表:

System.out.println("Account Details..... \n");
for(BankAccount item : myBank.getAllAccounts()) {
    System.out.println("Account number: " + item.getAccountNumber());
    System.out.println("Account name: " + item.getAccountName());
    System.out.println("Current balance: " + item.getBalance());
    System.out.println();
}

可选优化点
  • 删除main方法中冗余的BankAccount account = myBank.getItem(myAcc);代码:depositMoney方法内部已经封装了账号校验、获取对应账户的逻辑,这个变量创建后从未被使用,属于无效代码
  • BankAccount类中定义的private char choice;成员完全冗余,这个变量是main方法里的局部控制变量,不需要存在每个银行账户对象中,可直接删除
  • Bank类搜索方法中的循环条件i <= list.size() - 1可简化为等价写法i < list.size(),代码更简洁

内容的提问来源于stack exchange,提问作者Luke Delves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.07 09:54:05