利用 Map,完成下面的功能:
从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。
如果该年没有举办世界杯,则输出:没有举办世界杯。

冠军类
public class GuanJun {/*** 届数*/private Integer jie;private Integer year;/*** 冠军国家的而名字*/private String countryName;public GuanJun() {}public GuanJun(Integer jie, Integer year, String countryName) {this.jie = jie;this.year = year;this.countryName = countryName;}public Integer getJie() {return jie;}public void setJie(Integer jie) {this.jie = jie;}public Integer getYear() {return year;}public void setYear(Integer year) {this.year = year;}public String getCountryName() {return countryName;}public void setCountryName(String countryName) {this.countryName = countryName;}@Overridepublic String toString() {return "GuanJun{" +"jie=" + jie +", year=" + year +", countryName='" + countryName + '\'' +'}';}
}

世界杯

public class WorldCup {/*** 用来存放所有冠军的容器*/private Map<Integer, GuanJun> maps = new HashMap<>(16);public WorldCup() {// 初始化数据maps.put(2006,new GuanJun(18,2006, "意大利"));maps.put(2002, new GuanJun(17,2002, "巴西"));maps.put(1998, new GuanJun(16,1998, "法国"));maps.put(1994, new GuanJun(15,1994, "巴西"));maps.put(1990, new GuanJun(14,1990, "德国"));maps.put(1986, new GuanJun(13,1986, "阿根廷"));maps.put(1982, new GuanJun(12,1982, "意大利"));maps.put(1978, new GuanJun(11,1978, "阿根廷"));maps.put(1974, new GuanJun(10,1974, "意大利"));maps.put(1970, new GuanJun(9,1970, "德国"));maps.put(1966, new GuanJun(8,1966, "巴西"));maps.put(1962, new GuanJun(7,1962, "英格兰"));maps.put(1958, new GuanJun(6,1958, "巴西"));maps.put(1954, new GuanJun(5,1954, "德国"));maps.put(1950, new GuanJun(4,1950, "乌拉圭"));maps.put(1938, new GuanJun(3,1938, "意大利"));maps.put(1934, new GuanJun(2,1934, "意大利"));maps.put(1930, new GuanJun(1,1930, "乌拉圭"));}/*** 通过年份获取冠军* @param year : 年份* @return*/public GuanJun getGuanJunByYear(Integer year){if(year <= 0){return null;}// 先判断是否有这个keyif (maps.containsKey(year)) {return maps.get(year);}return null;}/*** 通过国家的名字去获取冠军的年份* @param countryName : 国家的名字* @return*/public List<Integer> getYearsByCountry(String countryName){if (countryName == null || countryName.isEmpty()) {return null;}// 准备一个装年份的容器List<Integer> years = new ArrayList<>();// 把maps的值全部拿到Collection<GuanJun> values = maps.values();// 遍历valuesfor (GuanJun value : values) {if (value.getCountryName().equals(countryName)){// 有冠军years.add(value.getYear());}}return years;}}

测试类

import java.util.List;
import java.util.Scanner;public class MyTest {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);WorldCup worldCup = new WorldCup();/*System.out.println("请输入年份:");String year = scanner.next();// 这个地方需要用一个正则的校验GuanJun guanJun = worldCup.getGuanJunByYear(Integer.valueOf(year));if (guanJun == null) {System.out.println(year+"这年没有冠军!");}else{System.out.println(year+"这年的冠军是:"+guanJun.getCountryName());}*/System.out.println("请输入国家的而名字:");String countryName = scanner.next();List<Integer> years = worldCup.getYearsByCountry(countryName);if (years == null || years.size() == 0) {System.out.println("这个国家没有得过冠军");}else{System.out.println(years);}}
}

利用 Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。 如果该年没有举办世界杯,则输出:没有举办世界杯。相关推荐

  1. vs2010利用map,cod文件定位崩溃代码行

     利用map,cod文件定位崩溃代码行 利用vs2010 新建一个空的控制台项目,添加文件gtg.cpp,内容如下 void crash() { inti=1; intj=0; i/=j; } i ...

  2. AutoCAD 2011、Map 3D 2011, Civil 3D 2011命令行中不能输入中文的修复补丁

    问题描述 该修复补丁能够修复一个导致用户无法在AutoCAD® 2011产品的命令行窗口中输入亚洲字符的问题. 适用产品 AutoCAD® 2011 AutoCAD® Architecture 201 ...

  3. AfterEffect插件--常规功能开发--命令行渲染--js脚本开发--AE插件

      AfterEffect(AE)插件是Adobe公司开发的特效制作软件,稳定快速的功能和特效,在视频制作领域使用非常广泛,本文向大家介绍如何在项目里进行命令行渲染功能.源代码如下所示: // Com ...

  4. linux命令 复制文件夹命令行,(转)每天一个linux命令(8):cp 命令,复制文件和文件夹...

    场景:自动部署脚本中为了部署方便,将配置文件放在服务器端,每次部署都使用服务端的配置文件覆盖上传上去的配置文件. cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一. 一般情况下,she ...

  5. C语言打开记事本文件,并向记事本写入字符串,跨程序向cmd命令行窗口写入字符串执行命令

    终于解决了C语言控制cmd窗口,多次发送字符串给cmd执行命令,特此记录一下. 功能1:C语言用线程打开记事本,发送消息给记事本,实现向记事本写入字符 功能2:C语言发送消息给已经打开的cmd窗口,实 ...

  6. java命令行读入密码_java-在命令行上隐藏输入

    是的,可以做. 这称为命令行输入屏蔽. 您可以轻松实现此目的. 您可以使用单独的线程擦除输入的回显字符,并用星号替换. 使用下面显示的EraserThread类完成此操作 import java.io ...

  7. java输入字符串异常_设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。...

    设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为"XYZ",则抛出一个异常信息"This is a XYZ",如果从命令 ...

  8. Shifu高级功能:命令行中间件之HTTP 到 PowerShell 的中间件

    简介 为了让你的设备接入Shifu.我们用Go编写了一个简单的HTTP到 PowerShell 的中间件,供开发者使用. 设计 这个HTTP到PowerShell的中间件是这样设计的: 中间件在主机上 ...

  9. linux命令行语法cd用法,每天一个Linux命令之cd命令详解

    Linux系统要学好其它命令则首先要学好cd命令的使用方法和技巧.下面由学习啦小编为大家整理了每天一个Linux命令之cd命令详解,希望对大家有帮助! 每天一个Linux命令之cd命令详解 cd命令用 ...

  10. C语言:使用命令行参数用字符串读取流和输出流进行文本文件的复制

    #include<stdio.h> int main(int argc,char *argv[]) { //检查用户的参数是否正确 if(argc<3) { printf(" ...

最新文章

  1. es文件浏览器鸿蒙,手机文件一团糟 八款安卓文件管理器来救急
  2. windows RabbitMq 安装
  3. 背包问题教程-01背包,完全背包,多重背包,混合背包 收藏
  4. numpy.power()
  5. python代码颜色不同_Python填充任意颜色,不同算法时间差异分析说明
  6. H.264(MPEG-4 AVC)级别(Level)、DPB 与 MaxDpbMbs 详解(转载)
  7. Mysql 重做日志及与二进制日志的区别
  8. gradle引入依赖:_Gradle善良:获得更多的依赖性见解
  9. slice与substring与substr
  10. HashMap的小知识点
  11. 关于Mac下mysql8.0的启动
  12. RHEL4-VNC服务(二)vnc服务器的配置
  13. 在线抖音去水印,下载抖音背景音乐
  14. 手把手教你如何破解软件
  15. ubuntu 的挂起与休眠
  16. 千千静听播放器下载2015 v9.1.6 官网最新版
  17. c++做的免费游戏狼人杀
  18. JAVA 获取零时区时间
  19. TB6612FNG模块使用说明
  20. 微信长按网页保存为截图

热门文章

  1. 易基因 - 外泌体let-7d-3p和miR-30d-5p作为宫颈癌及其癌前病变无创筛查的诊断标志物|早期筛查
  2. python的request返回400_爬虫发出ajax请求,requests能获取正常响应,scrapy发出请求却返回400...
  3. ESP32-C3编译问题
  4. 银河麒麟v10_备受瞩目的银河麒麟v10系统究竟好不好?开箱测评瞬间明了
  5. springboot自动装配原理
  6. 我要偷偷的学Python,然后惊呆所有人(第一天)
  7. 加州大学欧文分校 计算机专业,加州大学欧文分校排名及各专业排名
  8. javascript实现前程无忧的选择城市
  9. 新世纪电影城热闹的三月 好片连连看 图
  10. python中oct函数_Python中的oct() 函数是什么?