银行账户ArrayList

时间:2014-09-26 02:38:37

标签: java arraylist nested-loops

我的老师向我们展示了如何使用ArrayList存储信息,但我遇到了麻烦。我不明白的是如何引用我已存储在数组列表中的“帐户”,然后将方法应用于它。例如,我试图在存储在ArrayList中的帐户上使用“存款”方法。

import java.util.Scanner;
import java.util.ArrayList;
public class Engine
{
public static void Engine()
{
    ArrayList<BankAccount> accounts = new ArrayList<BankAccount>();
    Scanner Reader = new Scanner(System.in);
    BankAccount n = new BankAccount();
    String response = Reader.nextLine();
    boolean keepGoing = true;
    while(keepGoing)
    {
        System.out.println("Welcome to The Bank of Money, what would you like to do?\n   enter code hereenter n to create a new account, enter e to use an existing account, or     enter q to quit to main menu");

        response = Reader.nextLine();
        if(response.equals("q")) keepGoing = false;
        if(response.equals("n")) accounts.add(new BankAccount());
        if(response.equals("e"))System.out.println("what is your account number?");
        String accountNum = Reader.nextLine();  

    }
    System.out.println("press 1 to deposit money");
    System.out.println("press 2 to withdraw money");
    System.out.println("press 3 to check your account balance");
    System.out.println("press 4 to check your account's interest");
    System.out.println("press 5 to quit");
    String response2 = Reader.nextLine();
    if (Reader.nextLine().equals("1"))
    {
        for(int i = 0; i<accounts.size();i++)
        {
            if (accounts.get(i).equals(accountNum))
            {
                accounts.get(i).deposit(amount);

            }
        }
    }
}
}

我的更新代码

3 个答案:

答案 0 :(得分:1)

  

&#34;我怎么说&#34;如果用户输入1,请使用存款方式?&#34;

if (Reader.nextLine().equals("1")
{
    // Call deposit method on correct arraylist item.
}

现在,我根据您提供的代码了解您的计划背景,但看起来您正在为每个BankAccount实例提供一个银行帐号..? 这是一个有用的标识符,因为它们可能都是唯一的。 收到正确的输入后,您只需循环遍历arraylist中的所有银行帐户,直到找到具有正确帐号的帐户,然后在其上拨打存款:

if (Reader.nextLine().equals("1")
{
    for (int i = 0; i<accounts.size(); i++
    {
        if (accounts.get(i).getAccountNum().equals(accountNum)) // Use a getter here
        {
            accounts.get(i).deposit(amount to deposit);
        }
    }
}

......或类似的东西......

答案 1 :(得分:0)

您如何知道从ArrayList获取哪个BankAccount?是否存在多个BankAccount,这就是为什么要将它们存储在ArrayList中?您想在ArrayList中的所有帐户上运行存款方法吗?需要更清晰。 我仍然建议(在这种情况下)使用switch case,其中的情况类似Case“1”:// Call to deposit方法。等等等等。 看看这是否有帮助。如果您需要进一步的帮助,请与我们联系。

答案 2 :(得分:0)

//我怎么说&#34;如果用户输入1,请使用存款方式?

代码与您输入以添加新帐户或使用exists相同。然后您可以获得用户在创建帐户后要执行的操作类型。

如果是现有帐户,请将帐号作为输入,并从arraylist

中查找

如果您使用此代码,则无法获得该帐户

for(int i = 0; i<accounts.size();i++)
{
accounts.get(i).deposit(double amount);
}

并为该帐号清楚地创建一个存储功能