遍历map,根据总额计算每个map的金额占比
时间: 2023-07-04 12:30:24 浏览: 227
假设有一个 Map 对象,存储了多个商品名称和对应的价格,可以按照如下方式计算每个商品价格在总价中的占比:
```java
Map<String, Double> goods = new HashMap<>();
// 填充商品名称和价格
goods.put("商品1", 10.0);
goods.put("商品2", 20.0);
goods.put("商品3", 30.0);
// 计算总价
double totalPrice = goods.values().stream().reduce(0.0, Double::sum);
// 计算每个商品价格在总价中的占比
Map<String, Double> proportions = new HashMap<>();
for (Map.Entry<String, Double> entry : goods.entrySet()) {
double proportion = entry.getValue() / totalPrice;
proportions.put(entry.getKey(), proportion);
}
```
其中,`goods` 是存储商品名称和价格的 Map 对象,`totalPrice` 是计算得到的总价,`proportions` 是存储商品名称和价格占比的 Map 对象。
在计算每个商品占比时,遍历 Map 对象中的每个键值对,通过 `entry.getValue()` 获取价格,除以总价,得到占比,然后将商品名称和占比存储到 `proportions` 中。
阅读全文