Java 之 实验九 -- 集合
实验九
集合
练习一
1.产生10个1-100的随机数,并放到一个数组中,把数组中大于等于10的数字放到一个list集合中,并打印到控制台,运行效果如图6-1所示:

text09.java
package J09;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;;
public class text09 {
public static void main(String[] args) {
ArrayList <Integer> list=new ArrayList<Integer>();
int arr[]=new int[10];
Random sz=new Random();
for (int i = 0; i < arr.length; i++) {
arr[i]=sz.nextInt(100)+1;
if (arr[i]>=10) {
list.add(arr[i]);
}
}
System.out.println("原有数组"+Arrays.toString(arr));
System.out.println("大于10的数字"+list);
}
}
练习二
2.利用HashMap,完成下面的功能:
编写一段程序,要求如下:
当输入一个年份,将显示出该年的世界杯冠军球队,如果该年没有举办世界杯,则输出:没有举办世界杯;
当输入一支球队的名字,输出该球队夺冠的年份列表。 例如,读入“巴西”,应当输出 1958 1962 1970 1994 2002 ,读入“荷兰”,应当输出没有获得过世界杯,运行结果如图6- 2 世界杯冠军查询结果图所示。

图6- 2 世界杯冠军查询结果图
历届世界杯冠军信息,见表6-1历届世界杯冠军
表6- 1 历届世界杯冠军
届数 举办年份 冠军
第一届 1930年 乌拉圭
第二届 1934年 意大利
第三届 1938年 意大利
第四届 1950年 乌拉圭
第五届 1954年 西德
第六届 1958年 巴西
第七届 1962年 巴西
第八届 1966年 英格兰
第九届 1970年 巴西
第十届 1974年 西德
第十一届 1978年 阿根廷
第十二届 1982年 意大利
第十三届 1986年 阿根廷
第十四届 1990年 西德
第十五届 1994年 巴西
第十六届 1998年 法国
第十七届 2002年 巴西
第十八届 2006年 意大利
第十九届 2010年 西班牙
第二十届 2014年 德国
第二一届 2018年 法国
text2.java
package J09;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class text2 {
public static void main(String[] args) {
HashMap<Integer, String>map=new HashMap<Integer, String>();
map.put(1930, "乌拉圭");
map.put(1934, "意大利");
map.put(1938, "意大利");
map.put(1950, "乌拉圭");
map.put(1954, "西德");
map.put(1958, "巴西");
map.put(1962, "巴西");
map.put(1966, "英格兰");
map.put(1970, "巴西");
map.put(1974, "西德");
map.put(1978, "阿根廷");
map.put(1982, "意大利");
map.put(1986, "阿根廷");
map.put(1990, "西德");
map.put(1994, "巴西");
map.put(1998, "法国");
map.put(2002, "巴西");
map.put(2006, "意大利");
map.put(2010, "西班牙");
map.put(2014, "德国");
map.put(2018, "法国");
System.out.println("请输入年份");
Scanner scan= new Scanner(System.in);
int inputnum=Integer.parseInt(scan.nextLine());
for (Map.Entry<Integer,String>entry:map.entrySet()) {
int key=entry.getKey();
String value=entry.getValue();
if (inputnum==key) {
System.out.println(key+"年获得世界杯冠军的是"+value);
}
}
System.out.println("请输入国家名称");
String inputstr=scan.nextLine();
int flag=0;
for(Map.Entry<Integer,String>entry1:map.entrySet()){
if (entry1.getValue().equals(inputstr)){
System.out.println(entry1.getKey()+"年");
flag=1;
}
}
if (flag==0) {
System.out.println("没有获得过世界杯");
}
}
}

浙公网安备 33010602011771号