java--集合框架List集合练习

本文介绍了如何使用Java的Iterator和增强for循环遍历List,以及如何将16支足球队随机分为4组。同时展示了如何在给定学生列表中计算平均年龄和不同班级的平均分数。
摘要由CSDN通过智能技术生成


一、如何使用Iterator和增强for循环遍历List。举例说明?

// iterator迭代器:集合特有的遍历方式
        Iterator<Student> it = list.iterator();
        while (it.hasNext()) {
            Student s = it.next();
            System.out.println(s.getName() + "," + s.getAge());
        }
// 增强for:最方便的遍历方式
        for (Student s : list) {
            System.out.println(s.getName() + "," + s.getAge());
        }

二、已知有十六支男子足球队参加2008 北京奥运会。

写一个程序,把这16支球队随机分为4个组。采用List集合和随机数

2008 北京奥运会男足参赛国家:

科特迪瓦,阿根廷,澳大利亚,塞尔维亚,荷兰,尼日利亚、日本,美国,中国,新西 兰,巴西,比利时,韩国,喀麦隆,洪都拉斯,意大利
代码如下:

    public static void main(String[] args) {
        ArrayList<String> strings = new ArrayList<>();
        strings.add("科瓦迪尔");
        strings.add("阿根廷");
        strings.add("澳大利亚");
        strings.add("塞尔维亚");
        strings.add("尼日利亚");
        strings.add("荷兰");
        strings.add("日本");
        strings.add("美国");
        strings.add("中国");
        strings.add("新西兰");
        strings.add("巴西");
        strings.add("比利时");
        strings.add("韩国");
        strings.add("柯麦隆");
        strings.add("洪都拉斯");
        strings.add("意大利");
        Random random = new Random();
        for(int i=0;i<4;i++){
            System.out.println("第"+(i+1)+"组是:");
            for(int j=0;j<4;j++){
                String s = strings.get(random.nextInt(strings.size()));
                System.out.print(s+" ");
                strings.remove(s);
            }
            System.out.println();
        }
    }
}

运行结果:
在这里插入图片描述

写一个方法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## 1.引入库
代码如下(示例):

    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add("Hello");
        list.add("World");
        list.add("Learn");
        System.out.println(list);
        reverseList(list);

    }


    public static void reverseList(ArrayList<String> l) {
        ArrayList<String> strings = new ArrayList<>();
        for(int i=l.size()-1;i>=0;i--){
            strings.add(l.get(i));
        }
        System.out.println(strings);
    }
}

结果如下:
在这里插入图片描述

在这个list 的基础上,完成下列要求:

//1) 计算所有学生的平均年龄

//2) 计算各个班级的平均分

有如下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”));

代码如下:

    public static void main(String[] args) {
        List<StudentList> list = new ArrayList();
        list.add(new StudentList("Tom", 18, 100, "class05"));
        list.add(new StudentList("Jerry", 22, 70, "class04"));
        list.add(new StudentList("Owen", 25, 90, "class05"));
        list.add(new StudentList("Jim", 30, 80, "class05"));
        list.add(new StudentList("Steve", 28, 66, "class06"));
        list.add(new StudentList("Kevin", 24, 100, "class04"));
        int sum = 0;
        for (StudentList s : list) {
            sum += s.getAge();
        }
        System.out.println("所有学生的平均年龄:" + sum / list.size());
        int sum1 = 0;
        int sum2 = 0;
        int sum3 = 0;
        int num1 = 0;
        int num2 = 0;
        int num3 = 0;
        for (StudentList s : list) {
            if (s.getClassNum() == "class04") {
                num1++;
                sum1 += s.getScore();
            }
            if (s.getClassNum() == "class05") {
                num2++;
                sum2 += s.getScore();
            }
            if (s.getClassNum() == "class06") {
                num3++;
                sum3 += s.getScore();
            }
        }

        System.out.println("class04班级的平均分为:" + sum1 / num1);
        System.out.println("class05班级的平均分为:" + sum2 / num2);
        System.out.println("class06班级的平均分为:" + sum3 / num3);
    }
}

结果如下:在这里插入图片描述

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值