如何使用ArrayList存放多名学生的进行,对部分学生信息进行修改,并对所有学生的信息进行遍历?

Java数据结构问题
定义一个学生类:属性有学号、姓名、专业、数学成绩、英语成绩,Java成绩。使用ArrayList存放多名学生的进行,对部分学生信息进行修改,并对所有学生的信息进行遍历。(至少选择两种遍历方法,for语句遍历或者Iterator遍历)

import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

class Student {
    private String sID;
    private String sName;
    private String sDepartment;
    private double English;
    private double Math;
    private double Java;
    public Student(String sID, String sName, String sDepartment, double English, double Math, double java) {
        this.sID= sID;
        this.sName = sName;
        this.sDepartment = sDepartment;
        this.Math = Math;
        this.English = English;
        this.Java = Java;
    }
    public String getID() {
        return sID;
    }
    public void setID(String sID) {
        this.sID = sID;
    }
    public String getSname() {
        return sName;
    }
    public void setSname(String sName) {
        this.sName = sName;
    }
    public String getDepartment() {
        return sDepartment;
    }
    public void setDepartment(String sDepartment) {
        this.sDepartment = sDepartment;
    }
    public double getMath() {
        return Math;
    }
    public void setMath(double Math) {
        this.Math = Math;
    }
    public double getEnglish() {
        return English;
    }
    public void setEnglish(double English) {
        this.English = English;
    }
    public double getJava() {
        return Java;
    }
    public void setJava(double java) {
        this.Java = Java;
    }
    @Override
    public String toString() {
        return "Student [sID=" + sID + ", sName=" + sName + ", sDepartment=" + sDepartment + ", Math=" + Math
                + ", English=" + English + ", Java=" + Java + "]";
    }
}

求解答,谢谢

两种循环【for-each, Iterator】,参考如下:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author huazie
 * @version 2.0.0
 * @since 2.0.0
 */
public class Test {
    public static void main(String[] args) {
        Student stu1 = new Student("1000", "huazie", "ABC", 99, 100, 100);
        Student stu2 = new Student("1001", "lgh", "ABC", 98, 100, 100);
        Student stu3 = new Student("1002", "Tom", "ABC", 99, 100, 100);

        List<Student> stuList = new ArrayList<>();
        stuList.add(stu1);
        stuList.add(stu2);
        stuList.add(stu3);

        // Iterator
        Iterator<Student> stuIt = stuList.iterator();
        while(stuIt.hasNext()) {
            Student student = stuIt.next();
            System.out.println(student);
        }

        stuList.get(1).setMath(90.5);
        stuList.get(2).setJava(95.5);

        System.out.println();

        // fo-each 
        for (Student student : stuList) {
            System.out.println(student);
        }
    }
}

该回答引用ChatGPT
下面是使用ArrayList存储学生对象,并对学生信息进行修改和遍历的示例代码:


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 创建学生列表
        List<Student> students = new ArrayList<Student>();
        students.add(new Student("1001", "张三", "计算机科学与技术", 90, 85, 88));
        students.add(new Student("1002", "李四", "软件工程", 88, 92, 95));
        students.add(new Student("1003", "王五", "物联网工程", 80, 87, 92));

        // 输出所有学生信息
        System.out.println("所有学生信息:");
        for (Student s : students) {
            System.out.println(s);
        }

        // 修改部分学生信息
        students.get(1).setJava(97);
        students.get(2).setEnglish(90);

        // 输出修改后的学生信息
        System.out.println("修改后的学生信息:");
        Iterator<Student> iter = students.iterator();
        while (iter.hasNext()) {
            System.out.println(iter.next());
        }
    }
}

使用了for,foreach,Iterator三种方式


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

/**
 * 集合中操作学生数据
 */
public class ListOptionalStuDataCase {
    public static void main(String[] args) {
        int studentCount = 20;
        List<Student> studentList = new ArrayList<>(studentCount);

        // for循环创建学生
        for (int index = 1; index <= studentCount; index++) {
            Student student = new Student(
                    // 编码
                    String.valueOf(index),
                    // 学生姓名
                    "stu" + index,
                    // 班级
                    "六年2班",
                    // 数学成绩
                    getRandomFraction(),
                    // 英语成绩
                    getRandomFraction(),
                    // Java成绩
                    getRandomFraction()
            );
            studentList.add(student);
        }

        // foreach遍历学生信息
        for (Student student : studentList) {
            if (student.getJavaScore() < 50D) {
                // 如果Java分数小于50分, 修改分数为100
                student.setJavaScore(100D);
            }
        }

        // 使用迭代器遍历学生信息
        Iterator<Student> iterator = studentList.iterator();
        while (iterator.hasNext()) {
            // 打印每一个学生信息
            System.out.println(iterator.next());
        }
    }

    /**
     * 获取随机分数
     *
     * @return 随机分数
     */
    private static double getRandomFraction() {
        Random random = new Random();

        return random.nextInt(100) + 1;
    }
}