我正在执行Java任务,就像带有客户对象和SavingsAccount的简单银行系统一样。我将所有Customer对象存储在一个arraylist中,并且我还打算对SavingsAccount对象执行相同的操作,但这也许不是必需的。每个SavingsAccount都有一个称为accountNumber的数据成员,该数据成员是唯一的。
SavingsAccount还包括lika accountBalance数据成员。因此,我的问题是我如何到达具有accountNumber等于“1002”的SavingsAccount(出于某种原因,我将它们作为字符串),然后能够设置或从数据成员中获取值,例如带有setAccountBalance的accountBalance?帮助非常重要!谢谢!
我创建帐户对象
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,但是我还没有接触到哈希表,并且希望目前有一个更简单但不是最好的解决方案?有没有一种方法可以在不将对象“收集”到arraylist或hashmap中的情况下到达对象?
最佳答案
建议您不要将帐户存储在ArrayList<SavingsAccount>
中,而不是将其存储在HashMap<String, SavingsAccount>
中。
创建帐户后,立即将其放入 map 中:
SavingsAccount account = new SavingsAccount(inAccount);
accountMap.put(inAccount, account);
然后,您可以通过执行以下操作轻松而有效地拥有一个帐户
accountMap.get(accountNumber);
为了确保由某个帐号映射到的帐号始终确实具有该帐号,我建议您将
accountNumber
设置为final:...
private final String accountNumber;
...
关于java - 查找具有Java中唯一值的数据成员的对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8267487/