在原有世界杯Map 的基础上,增加如下功能: 读入一支球队的名字,输出该球队夺冠的年份列表。 例如,读入“巴西”,应当输出 1958 1962 1970 1994 2002 读入“荷兰”,应当输出 没有获得过世界杯。
时间: 2024-02-15 19:05:42 浏览: 31
可以在原有代码的基础上增加如下的实现:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class WorldCupChampion {
public static void main(String[] args) {
Map<Integer, String> champions = new HashMap<>();
champions.put(1930, "乌拉圭");
champions.put(1934, "意大利");
champions.put(1938, "意大利");
champions.put(1950, "乌拉圭");
champions.put(1954, "西德");
champions.put(1958, "巴西");
champions.put(1962, "巴西");
champions.put(1966, "英格兰");
champions.put(1970, "巴西");
champions.put(1974, "西德");
champions.put(1978, "阿根廷");
champions.put(1982, "意大利");
champions.put(1986, "阿根廷");
champions.put(1990, "西德");
champions.put(1994, "巴西");
champions.put(1998, "法国");
champions.put(2002, "巴西");
champions.put(2006, "意大利");
champions.put(2010, "西班牙");
champions.put(2014, "德国");
champions.put(2018, "法国");
Map<String, List<Integer>> teamChampions = new HashMap<>();
for (Map.Entry<Integer, String> champion : champions.entrySet()) {
int year = champion.getKey();
String team = champion.getValue();
List<Integer> years = teamChampions.get(team);
if (years == null) {
years = new ArrayList<>();
teamChampions.put(team, years);
}
years.add(year);
}
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个球队的名字:");
String team = scanner.nextLine();
List<Integer> years = teamChampions.get(team);
if (years != null) {
System.out.println(team + "夺冠的年份列表:");
for (int year : years) {
System.out.println(year);
}
} else {
System.out.println(team + "没有获得过世界杯。");
}
}
}
```
以上代码中,我们增加了一个 `teamChampions` 的 `HashMap`,用来存储每个球队夺冠的年份列表。然后我们遍历 `champions` 中的每一项,将每个球队夺冠的年份存入到 `teamChampions` 中。最后,从命令行读入一个球队的名字,并且查找该球队夺冠的年份列表。如果找到了,就输出年份列表;如果没有找到,就输出相应的提示信息。