需求 在图片里面了 实在是菜写不出来关于学生系统的题 才开始学 想看 正确代码是什么样子的
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class TestStu {
List<Stu> list = new ArrayList<>();
@Data
@AllArgsConstructor
static class Stu{
private String stuName;
private Integer stuAge;
private String stuSex;
private String stuNo;
}
public void add(Stu stu){
list.add(stu);
}
public void show(){
System.out.println("-----------------------");
for (Stu stu:list){
System.out.println(stu);
}
System.out.println("-----------------------");
}
public void update(int index,Stu stu){
checkIndex(index);
list.set(index-1,stu);
}
public Stu find(int index){
checkIndex(index);
return list.get(index-1);
}
private void checkIndex(int index){
if(index<=0|| index>= list.size()){
throw new RuntimeException("没有该ID的同学");
}
}
public static void main(String[] args) {
TestStu stu = new TestStu();
// Scanner scanner = new Scanner(System.in);
// 模拟输入5个同学
for (int i=0;i<5;i++){
stu.add(new Stu("StuName"+i,20+i,i%2==0?"男":"女","stuNo"+i));
}
//打印
stu.show();
//查找
System.out.println(stu.find(1));
System.out.println(stu.find(3));
Stu updateStu = stu.find(1);
updateStu.setStuName(updateStu.getStuName()+"Update");
//修改
stu.update(1,updateStu);
System.out.println(stu.find(1));
}
}
结果:
-----------------------
TestStu.Stu(stuName=StuName0, stuAge=20, stuSex=男, stuNo=stuNo0)
TestStu.Stu(stuName=StuName1, stuAge=21, stuSex=女, stuNo=stuNo1)
TestStu.Stu(stuName=StuName2, stuAge=22, stuSex=男, stuNo=stuNo2)
TestStu.Stu(stuName=StuName3, stuAge=23, stuSex=女, stuNo=stuNo3)
TestStu.Stu(stuName=StuName4, stuAge=24, stuSex=男, stuNo=stuNo4)
-----------------------
TestStu.Stu(stuName=StuName0, stuAge=20, stuSex=男, stuNo=stuNo0)
TestStu.Stu(stuName=StuName2, stuAge=22, stuSex=男, stuNo=stuNo2)
TestStu.Stu(stuName=StuName0Update, stuAge=20, stuSex=男, stuNo=stuNo0)