java集合练习——题目
2、已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。采用List集合和随机数
2008 北京奥运会男足参赛国家:
科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,新西 兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利
import java.util.ArrayList; import java.util.List; import java.util.Random; public class FenZu { public static void main(String[] args) { List<String> qiudui=new ArrayList<>(); qiudui.add("科特迪瓦"); qiudui.add("阿根廷"); qiudui.add("澳大利亚"); qiudui.add("塞尔维亚"); qiudui.add("荷兰"); qiudui.add("尼日利亚"); qiudui.add("日本"); qiudui.add("美国"); qiudui.add("中国"); qiudui.add("新西兰"); qiudui.add("巴西"); qiudui.add("比利时"); qiudui.add("韩国"); qiudui.add("喀麦隆"); qiudui.add("洪都拉斯"); qiudui.add("意大利"); Random a=new Random(); for(int i=0;i<4;i++){ System.out.print("第"+(i+1)+"组:"); for(int j=0;j<4;j++){ String str=qiudui.get(a.nextInt(qiudui.size())); System.out.print(str+" "); qiudui.remove(str); } System.out.println(); } } }
3、 有如下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) 计算各个班级的平均分
import java.util.ArrayList; import java.util.List; public class Student { private String name; private int age; private int score; private String classNum; Student(String name, int age, int score, String classNum){ this.name=name; this.age=age; this.score=score; this.classNum=classNum; } public static void main(String[] args){ List<Student> 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("Steve",30,80,"class05")); list.add(new Student("Kevin",28,66,"class06")); list.add(new Student("Tom",18,100,"class05")); int sum=0; int sumscore=0; for(Student stu:list){ sum+=stu.age; sumscore+=stu.score; } System.out.println("平均年龄是:"+sum/list.size()); System.out.println("平均分是:"+sumscore/list.size()); } }
5、(Map)设计Account 对象如下:
private long id;
private double balance;
private String password;
要求完善设计,使得该Account 对象能够自动分配id。 给定一个List 如下:
List list = new ArrayList();
list.add(new Account(10.00, “1234”));
list.add(new Account(15.00, “5678”));
list.add(new Account(0, “1010”));
要求把List 中的内容放到一个Map 中,该Map 的键为id,值为相应的Account 对象。 最后遍历这个Map,打印所有Account 对象的id 和余额。
import java.util.ArrayList; import java.util.List; import java.util.Random; public class Account1 { private long id; private double balance; private String password; List<Long> idjihe=new ArrayList<>(); Account1(double balance,String password){ this.balance=balance; this.password=password; Random a=new Random(); boolean s=true; while(s){ id=a.nextLong(); if(id>0){ this.id=id; s=false; } } } public long getId() { return id; } public void setId(long id) { this.id=id; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class TestAccount { public static void main(String[] args) { List<Account1> list=new ArrayList<>(); list.add(new Account1(10.00,"1234")); list.add(new Account1(15.00,"5678")); list.add(new Account1(0,"1010")); Map<Long,Account1> map=new HashMap<>(); for(Account1 temp:list){ map.put(temp.getId(), temp); } for(Long id:map.keySet()){ System.out.println("ID="+id+" 余额为:"+map.get(id).getBalance()); } } }