开发者

How do you add a method that accepts a transaction and adds it to the list of transactions that is a array that adjusts the balance of a account

Here is the code I have so far for the Account class

public class Account {
    Transcation transcation[];
    private int account;



public Account(){
    transcation = new Transcation[5];


}
private void setAccount(int account){
    this.account = account;

}开发者_运维技巧
public int getAccount(){
    return account;
}

public performTranscation(){
    return transcation;
}

}


Define transactions as EnumSet:

EnumSet<Transcation> transactions;


public class Account {
    private Transaction[] transactions = new Transaction[0];
    private BigDecimal balance = BigDecimal.ZERO;

    public performTransaction(Transaction transaction) {
        transactions = transactions.copyOf(transactions, transactions.length + 1;
        transactions[transactions.length - 1] = transaction;
        balance = balance.plus(transaction.getDelta());
    }
}

public class Transaction {
    private final BigDecimal delta;

    public Transaction(BigDecimal delta) {
        this.delta = delta;
    }

    public BigDecimal getDelta() {
        return delta;
    }
}

However you should use an ArrayList not an array; it will be more efficient as you will not need to copy the array each time.

public class Account {
    private final List<Transaction> transactions = new ArrayList<Transaction>();
    private BigDecimal balance = BigDecimal.ZERO;

    public performTransaction(Transaction transaction) {
        transactions.add(transaction);
        balance = balance.plus(transaction.getDelta());
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜