Java集合练习题——使用List存储10个学生信息。(学生信息:姓名,年龄,成绩。统计所有姓“张”的同学的平均成绩。)

目录

1、引言

2、代码实现 


 

1、引言

看题目获取关键信息,首先创建一个学生类,定义三个成员属性姓名、年龄、成绩,定义有参无参构造方法和get、set方法,并重写toString方法。创建测试类进行测试,创建10个学生类对象,通过有参构造传递学生信息。具体代码如下

2、代码实现 

public class Student {
    private String name;
    private int age;
    private double goals;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Student(String name, int age, double goals) {
        this.name = name;
        this.age = age;
        this.goals = goals;
    }

    public double getGoals() {
        return goals;
    }

    public void setGoals(double goals) {
        this.goals = goals;
    }



    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", goals=" + goals +
                '}';
    }

}
public class Demo6 {
       /* 6、使用List存储10个学生信息。
        学生信息:姓名,年龄,成绩。
        统计所有姓“张”的同学的平均成绩。*/
    public static void main(String[] args) {
        //创建List集合对象
        List list=new ArrayList<>();
        //创建10个学生类对象并通过有参构造传递学生信息
        Student s1=new Student("张三",25,96);
        Student s2=new Student("蕾蕾",21,89);
        Student s3=new Student("张雷",26,92);
        Student s4=new Student("赵琳",23,99);
        Student s5=new Student("张硕",22,95);
        Student s6=new Student("宋轶",29,94);
        Student s7=new Student("黄吉",22,93);
        Student s8=new Student("雷米",23,92);
        Student s9=new Student("张思",28,91);
        Student s10=new Student("赵明",26,90);
        //把学生对象都添加到list集合中
        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        list.add(s5);
        list.add(s6);
        list.add(s7);
        list.add(s8);
        list.add(s9);
        list.add(s10);
        //使用list集合的迭代器进行遍历  使用其他遍历方式也可
        Iterator iterator = list.iterator();
        //初始化sum,用来接收姓张同学的总分
        double sum=0;
        //初始化人数
        int num=0;
        //循环遍历
        while(iterator.hasNext()){
            //获取每次遍历得出的学生对象
            Student next = iterator.next();
            //使用getName方法获取名字,startWith判断字符串是否以张为开头
            if(next.getName().startsWith("张")){
                //为张开头的名字进入,让num值加1,sum+=计算总分
                num++;
                sum+=next.getGoals();
            }
        }
        //计算最终的平均分
        double avg=sum/num;
        System.out.println("姓张的平均分为:"+avg);
    }
}

你可能感兴趣的:(JavaSE练习题,java)