【发布时间】:2016-09-07 16:39:16
【问题描述】:
我有一个抽象类Transaction,我想计算每个Transaction 的总价格。总价的计算方法是在Map 中获取每个Product 的价格,然后将该价格乘以每个Product 的数量。我只是不知道如何将这些价格乘以 Map 中的值。任何人都可以帮助我吗?我几乎尝试了所有方法,但没有任何效果。
public abstract class Transaction
{
//Attributes
...
//Links
Map<Product,Integer> products;
//Constructor
Transaction()
{
id = newTrId.incrementAndGet();
date = new Date();
products = new HashMap<>();
}
abstract void addProduct(Product aProduct, int aQuantity);
BigDecimal calculateTotal()
{
BigDecimal total = new BigDecimal(0);
for(Product eachProduct : products.keySet())
{
total.add(eachProduct.getPrice());
}
for (Integer eachProduct : products.values())
{
}
return total;
}
}
【问题讨论】:
-
total.add(eachProduct.getPrice() * products.get(eachProduct));这将获取Integer中的productsMap并乘以eachProduct的价格。将其添加到您的for-each循环中,而不是执行另一个循环。
标签: java