集合相关题目0927
Posted 琢磨先生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合相关题目0927相关的知识,希望对你有一定的参考价值。
第一题 (Map)利用Map,完成下面的功能:
从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。
附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录
- 历届世界杯冠军
届数 |
举办年份 |
举办地点 |
冠军 |
1930年 |
乌拉圭 |
乌拉圭 |
|
第二届 |
1934年 |
意大利 |
意大利 |
第三届 |
1938年 |
法国 |
意大利 |
第四届 |
1950年 |
巴西 |
乌拉圭 |
第五届 |
1954年 |
瑞士 |
西德 |
第六届 |
1958年 |
瑞典 |
巴西 |
第七届 |
1962年 |
智利 |
巴西 |
第八届 |
1966年 |
英格兰 |
英格兰 |
第九届 |
1970年 |
墨西哥 |
巴西 |
第十届 |
1974年 |
前西德 |
西德 |
第十一届 |
1978年 |
阿根廷 |
阿根廷 |
第十二届 |
1982年 |
西班牙 |
意大利 |
第十三届 |
1986年 |
墨西哥 |
阿根廷 |
第十四届 |
1990年 |
意大利 |
西德 |
第十五届 |
1994年 |
美国 |
巴西 |
第十六届 |
1998年 |
法国 |
法国 |
第十七届 |
2002年 |
韩日 |
巴西 |
第十八届 |
2006年 |
德国 |
意大利 |
第十九届 |
2010年 |
南非 |
西班牙 |
第二十届 |
2014年 |
巴西 |
德国 |
(Map)在原有世界杯Map 的基础上,增加如下功能: 读入一支球队的名字,输出该球队夺冠的年份列表。 例如,读入“巴西”,应当输出 1958 1962 1970 1994 2002 读入“荷兰”,应当输出 没有获得过世界杯
package zuoye集合; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Map_zuqiu { public static void main(String[] args) { Map<String, String> ma = new HashMap<String, String>(); ma.put("1930", "乌拉圭"); ma.put("1934", "意大利"); ma.put("1938", "意大利"); ma.put("1950", "乌拉圭"); ma.put("1954", "西德"); ma.put("1958", "巴西"); ma.put("1962", "巴西"); ma.put("1966", "英格兰"); ma.put("1970", "巴西"); ma.put("1974", "西德"); ma.put("1978", "阿根廷"); ma.put("1982", "意大利"); ma.put("1986", "阿根廷"); ma.put("1990", "西德"); ma.put("1994", "巴西"); ma.put("1998", "法国"); ma.put("2002", "巴西"); ma.put("2006", "意大利"); ma.put("2010", "西班牙"); ma.put("2014", "德国"); System.out.println("请输入年份"); Scanner sc = new Scanner(System.in); String a = sc.nextLine(); if (ma.containsKey(a) == false) { System.out.println("该年没有举办奥运会"); } else { System.out.println("冠军队是: " + ma.get(a)); } Scanner sc1 = new Scanner(System.in); System.out.println("请输入夺冠的球队"); String str1 = sc1.nextLine(); if (ma.containsValue(str1) == false) //通过判断输入的球队是否存在 { System.out.println(str1 + "队没有获得过冠军"); } else { System.out.println(str1 + "队的夺冠年份是:"); //遍历 //通过遍历key的set集合,同时获取value for (String k : ma.keySet()) { if (ma.get(k).equals(str1)) { System.out.print(" " + k); } } } } }
二题 已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。采用List集合和随机数
2008 北京奥运会男足参赛国家:
科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,新西 兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利
package zuoye集合; import java.util.ArrayList; import java.util.List; import java.util.Random; public class List_suiji { public static void main(String[] args) { // TODO 自动生成的方法存根 List <String> ls= new ArrayList<>();//实例化 //添加 ls.add("科特迪瓦"); ls.add("阿根廷"); ls.add("澳大利亚"); ls.add("塞尔维亚"); ls.add("荷兰"); ls.add("尼日利亚"); ls.add("日本"); ls.add("美国"); ls.add("中国"); ls.add("新西兰"); ls.add("巴西"); ls.add("比利时"); ls.add("韩国"); ls.add("喀麦隆"); ls.add("洪都拉斯"); ls.add("意大利"); Random r=new Random();//随机 for (int i = 0; i < 4; i++) { System.out.println("第" + (i + 1) + "组是:"); for (int j = 0; j < 4; j++) { String str; str = ls.get(r.nextInt(ls.size())); System.out.print(str + " "); } System.out.println("\\n"); } } }
第三题 有如下Student 对象,
private String name;
private int age;
private int score;
private String classNum;
其中,classNum 表示学生的班号,例如“class05”。 有如下List
List list = new ArrayList();
list.add(new Student(“Tom”, 18, 100, “class05”));
list.add(new Student(“Jerry”, 22, 70, “class04”));
list.add(new Student(“Owen”, 25, 90, “class05”));
list.add(new Student(“Jim”, 30,80 , “class05”));
list.add(new Student(“Steve”, 28, 66, “class06”));
list.add(new Student(“Kevin”, 24, 100, “class04”));
在这个list 的基础上,完成下列要求:
1) 计算所有学生的平均年龄
2) 计算各个班级的平均分
package zuoye集合; public class Students { //属性 private String name ; private int age ; private int score ; private String classNum ; public Students(String name, int age, int score , String classNum ) { this.age= age ; this.classNum = classNum ; this.name = name ; this.score = score ; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public String getClassNum() { return classNum; } public void setClassNum(String classNum) { this.classNum = classNum; } }
package zuoye集合; import java.util.ArrayList; import java.util.List; public class A { public static void main(String[] args) { // TODO 自动生成的方法存根 List <Students> list = new ArrayList<>() ; list.add(new Students("Tom", 18 ,100 , "class05" )) ; list.add(new Students("jerry", 22 ,70 , "class04" )) ; list.add(new Students("Owen", 25 ,90 , "class05" )) ; list.add(new Students("Jim", 30 ,80 , "class05" )) ; list.add(new Students("Steve", 28 ,66 , "class06" )) ; list.add(new Students("Kevin", 24 ,100 , "class04" )) ; double sum = 0 ; for(int i = 0 ; i<list.size();i++) { //总成绩 sum += list.get(i).getAge(); } System.out.println("平均年龄为:" + sum/list.size()); int sum4 = 0 ; int j4 = 0 ; int sum5 = 0 ; int j5 = 0 ; int sum6 = 0 ; int j6 = 0 ; //遍历 //foreach for(Students x : list) { //判断班级 if(x.getClassNum().equals("class05") ) { sum5 +=x.getScore( ) ; ++ j5 ; } if(x.getClassNum().equals("class04") ) { sum4 +=x.getScore( ) ; ++ j4 ; } if(x.getClassNum().equals("class06") ) { sum6 +=x.getScore( ) ; ++ j6 ; } } System.out.println("class05的平均成绩:"+sum5/j5); System.out.println("class04的平均成绩:"+sum4/j4); System.out.println("class06的平均成绩:"+sum6/j6); } }
第四题 (List)写一个函数reverseList,该函数能够接受一个List,然后把该List 倒序排列。 例如:
List list = new ArrayList();
list.add(“Hello”);
list.add(“World”);
list.add(“Learn”); //此时list 为Hello World Learn
reverseList(list); //调用reverseList 方法之后,list 为Learn World Hello
package zuoye集合; import java.util.ArrayList; import java.util.List; public class Daoxu { public void reverseList(List<String> list) { List<String> list1 = new ArrayList<>(); for(int i =list.size()-1;i>=0;i--) { list1.add(list.get(i)); } list= list1; System.out.println("list= "+list); } }
package zuoye集合; import java.util.ArrayList; import java.util.List; public class B { public static void main(String[] args) { // TODO 自动生成的方法存根 List<String> list = new ArrayList<>(); list.add("Hello"); list.add("World"); list.add("Learn"); System.out.println("list="+list); Daoxu dx = new Daoxu(); System.out.println("倒序排列后:"); //反向 dx.reverseList(list); } }
以上是关于集合相关题目0927的主要内容,如果未能解决你的问题,请参考以下文章