父类public class Student private String name; private int age; private String sex; private Long sid; private double grade; Override public int hashCode
你的代码在修改学员信息时,修改成功后没有重新添加到学员列表中,导致修改的信息没有保存下来。在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("未找到信息");
}
}
这样就可以正常保存修改后的学员信息,并继续运行其他功能了
原文地址: https://www.cveoy.top/t/topic/iwjC 著作权归作者所有。请勿转载和采集!