我正在做一个Java任务,就像一个带有Customer对象和SavingsAccount的简单银行系统。我将所有Customer对象存储在一个arraylist中,我还计划对SavingsAccount对象执行相同的操作,但这可能不是必需的。每个SavingsAccount都有一个名为accountNumber的数据成员,它是唯一的。
SavingsAccount还包括数据成员lika accountBalance。所以我的问题是如何到达accountsumber等于“1002”的SavingsAccount(由于某种原因我将它们作为字符串)然后能够设置或获取数据成员的值,例如accountBalance with setAccountBalance?帮助是精确的!谢谢!
我创建了帐户对象
SavingsAccount account = new SavingsAccount(inAccount);
类SavingsAccount:
class SavingsAccount {
// data members
private String accountType;
private String accountNumber;
private double accountInterestRate;
private int accountBalance;
// constructor
public SavingsAccount(String inNumber){
accountType = "Saving";
accountNumber = inNumber;
accountInterestRate = 0.5;
accountBalance = 0;
}
// get account number
public String getAccountNumber() {
return accountNumber;
}
// get account balance
public int getAccountBalance() {
return accountBalance;
}
// get interest rate
public double getAccountInterestRate(){
return accountInterestRate;
}
// set new value to balance
public void setAccountBalance(int inMoney){
accountBalance = accountBalance + inMoney;
}
}
编辑:
由于我正在学习Java,我更喜欢现在使用的解决方案。我知道如何使用arraylist,但我还没有达到hashmap,并且希望现在有一个更简单,但也许不是最好的解决方案?是不是有办法在没有在arraylist或hashmap中“收集”它们的情况下到达对象?
答案 0 :(得分:1)
我建议您将帐户存储在ArrayList<SavingsAccount>
中,而不是将帐户存储在HashMap<String, SavingsAccount>
中。
创建帐户后立即将帐户置于地图中:
SavingsAccount account = new SavingsAccount(inAccount);
accountMap.put(inAccount, account);
然后,您可以通过
轻松有效地获取帐户accountMap.get(accountNumber);
为了确保某个帐号映射到的帐户确实拥有该帐号,我建议您accountNumber
最终确定:
...
private final String accountNumber;
...
答案 1 :(得分:0)
我会把它们放在像
这样的地图中final Map<String, SavingsAccount> accounts = new LinkedHashMap<String, SavingsAccount>();
// get an account.
SavingsAccount account = accounts.get(accountKey);
// add an account
accounts.put(accountKey, account);
答案 2 :(得分:0)
按帐号进行哈希是一种在恒定时间内获得SavingsAccount的有效方法。删除ArrayList并使用HashMap;
HashMap<String, SavingsAccount> map = new HashMap<String, SavingsAccount>();
SavingsAccount account = new SavingsAccount(inNumber);
map.put(inNumber, account);
然后用:
检索它SavingsAccount account = map.get(inNumber);