你的代码在修改学员信息时,修改成功后没有重新添加到学员列表中,导致修改的信息没有保存下来。在amend方法中,需要将修改后的学生对象重新添加到students列表中,即添加一行代码 students.add(student1);,这样修改的信息就会保存下来了。

修改后的amend方法如下所示:

public class amend {
    public static void amend(ArrayList<Student> students) throws InterruptedException {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改的学生学号:");
        long sid = sc.nextLong();
        for (Student student : students) {
            if (student.getSid()==sid){
                System.out.println("请输入要修改学生姓名:");
                String name = sc.next();
                System.out.println("请输入学生修改的年龄:");
                int age = sc.nextInt();
                System.out.println("请输入学生修改的性别:");
                String sex = sc.next();
                System.out.println("请输入学生修改的学号:");
                long newSId = sc.nextLong();
                System.out.println("请输入学生修改的成绩:");
                double grade = sc.nextDouble();
                students.remove(student);
                Student student1 = new Student(name,age,sex,newSId,grade);
                students.add(student1); // 将修改后的学生对象添加到students列表中
                System.out.println("修改成功");
                return; // 修改成功后直接返回,不需要继续遍历
            }
        }
        System.out.println("未找到信息");
    }
}

这样就可以正常保存修改后的学员信息,并继续运行其他功能了

父类public class Student private String name; private int age; private String sex; private Long sid; private double grade; Override public int hashCode

原文地址: https://www.cveoy.top/t/topic/iwjC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录