java 加权平均,使用Java 8流计算加权平均值
时间: 2023-09-13 08:12:46 浏览: 46
好的,我可以为您解答。假设我们有一个包含成绩和权重的列表,可以使用Java 8的流来计算加权平均值。以下是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
public class WeightedAverage {
public static void main(String[] args) {
List<Integer> grades = Arrays.asList(80, 90, 70, 85);
List<Integer> weights = Arrays.asList(2, 1, 3, 2);
double weightedAverage = calculateWeightedAverage(grades, weights);
System.out.println("Weighted average: " + weightedAverage);
}
public static double calculateWeightedAverage(List<Integer> grades, List<Integer> weights) {
int totalWeight = weights.stream().mapToInt(Integer::intValue).sum();
double weightedSum = 0;
for (int i = 0; i < grades.size(); i++) {
weightedSum += grades.get(i) * weights.get(i);
}
return weightedSum / totalWeight;
}
}
```
在这个示例中,我们有一个包含成绩和权重的列表。我们首先计算所有权重的总和,然后遍历每个成绩和它的对应权重,将它们相乘并累加到加权总和中。最后,我们将加权总和除以总权重以获得加权平均值。
运行上述代码,输出将是:
```
Weighted average: 78.57142857142857
```
希望这可以帮助您。如果您有任何其他问题,请随时问我。