使用迭代从Map中取出,让评委评分,并且求平均分,用Java写,并实现
时间: 2023-10-19 19:05:11 浏览: 21
假设我们有一个Map,其中key是选手的名字,value是一个List,代表该选手的评分列表。我们可以使用迭代器从Map中取出每个选手的评分列表,并计算平均分。
以下是Java代码示例:
```
import java.util.*;
public class Main {
public static void main(String[] args) {
// 创建Map,key是选手名字,value是评分列表
Map<String, List<Integer>> scores = new HashMap<>();
scores.put("张三", Arrays.asList(80, 85, 90));
scores.put("李四", Arrays.asList(70, 75, 80));
scores.put("王五", Arrays.asList(90, 95, 100));
// 迭代Map,计算平均分
double totalScore = 0.0;
int totalNum = 0;
Iterator<Map.Entry<String, List<Integer>>> iterator = scores.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, List<Integer>> entry = iterator.next();
String name = entry.getKey();
List<Integer> scoreList = entry.getValue();
int sum = 0;
for (int score : scoreList) {
sum += score;
}
double average = (double) sum / scoreList.size();
System.out.println(name + "的评分列表:" + scoreList + ",平均分:" + average);
totalScore += average;
totalNum++;
}
double overallAverage = totalScore / totalNum;
System.out.println("所有选手的平均分:" + overallAverage);
}
}
```
输出:
```
张三的评分列表:[80, 85, 90],平均分:85.0
李四的评分列表:[70, 75, 80],平均分:75.0
王五的评分列表:[90, 95, 100],平均分:95.0
所有选手的平均分:85.0
```