我的老师向我们展示了如何使用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);
}
}
}
}
}
我的更新代码
答案 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);
}
并为该帐号清楚地创建一个存储功能