我正在执行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/

10-12 22:47