java 加权平均_使用Java 8流计算加权平均值
时间: 2023-09-13 08:12:30 浏览: 90
KOZS:一个Android手机应用,在基础上统计考试成绩并计算加权平均值
您可以使用Java 8的流来计算加权平均值。具体步骤如下:
1. 建立一个包含值和权重的类,比如ValueWithWeight:
```
public class ValueWithWeight {
private final double value;
private final double weight;
public ValueWithWeight(double value, double weight) {
this.value = value;
this.weight = weight;
}
public double getValue() {
return value;
}
public double getWeight() {
return weight;
}
}
```
2. 建立一个包含ValueWithWeight对象的列表:
```
List<ValueWithWeight> values = Arrays.asList(
new ValueWithWeight(1.0, 2.0),
new ValueWithWeight(2.0, 3.0),
new ValueWithWeight(3.0, 4.0)
);
```
3. 使用流计算加权平均值:
```
double weightedAverage = values.stream()
.mapToDouble(v -> v.getValue() * v.getWeight())
.sum() / values.stream()
.mapToDouble(ValueWithWeight::getWeight)
.sum();
```
这里使用mapToDouble方法将ValueWithWeight对象转换为值和权重的乘积,然后使用sum方法将它们相加。最后,将它们除以权重的总和,得到加权平均值。
注意,这个例子中的权重是硬编码的。如果您需要从其他地方获取权重,可以使用一个函数或者一个映射来获取它们。
阅读全文