用ArrayList<>集合实现基础增删改查

1.首先先写一个Student(学生类),

成员变量

String sid,name,age,address(sid学生学号,name学生姓名,age学生年龄,address学生地址)提示:变量用全部用String字符串来写,会好写一点,全部用private私有化用来修饰

要有无参,有参,get set方法

代码如下:

public class Student {
   //学号
   private String sid;
   //名字
   private String name;
   //年龄
   private String age;
   //居住地
   private String address;

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

   public Student() {
   }

   public String getSid() {
      return sid;
   }

   public void setSid(String sid) {
      this.sid = sid;
   }

   public String getName() {
      return name;
   }

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

   public String getAge() {
      return age;
   }

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

   public String getAddress() {
      return address;
   }

   public void setAddress(String address) {
      this.address = address;
   }
}

2.写一个增删改查的实现类

 

 1.用输出语句完成主页面的编写
 2.用Scanner实现快捷键录入数据
 3.用switch语句完成操作的选择
 4.用循环完成再次回到主页面

增删改查界面如下代码:

public static void main(String[] args) {
   ArrayList<Student> list = new ArrayList<>();
   //用输出语句完成主页面的编写
   Scanner sc = new Scanner(System.in);
   
   while (true){
   System.out.println("-----------欢迎来到学生管理系统-----------");
   System.out.println("1.添加学生 2.删除学生 3.修改学生 4.查看所有学生 5.退出");
   System.out.println("请输入你的选择:");
   String s= sc.next();
   switch (s) {
      case "1":
         addStudent(list);//添加学生方法
         break;
      case "2":
         delete(list);//删除学生方法
         break;
      case "3":
         ChangeSid(list);//更改学生方法
         break;
      case "4":
         finaAddStudent(list);//查看所有学生方法
         break;
      case "5":
         System.out.println("谢谢使用!!!");/退出学生系统
         System.exit(0);//这个方法是终止JVM虚拟机
         break;
      default:
         System.out.println("选项出错,请重新选择!!!");
         break; //如果输出1~5选项之外,则会重新选择
   }
   }

}

//添加学生方法:

public static void addStudent(ArrayList<Student> list){
//参数列表使用ArrayList,调用Student对象
   Scanner sc=new Scanner(System.in);//调用键盘输出方法
   String sid;//定义sid方法
   while (true){
      System.out.println("请输入学生学号:");
      sid=sc.next();
      boolean flag = isUser(list, sid); //调用isUser方法
    //isUser方法是判断输出的学号是否与之前存储的学号有相同
      if(flag){
         System.out.println("您输入的学号已添加,请重新输入!!!");
    //红色这一块是为了判断输出有没有相同学号,如果有,请重新输入学号!!!
      }else{
         System.out.println("请输入学生姓名:");
         String name=sc.next();
         System.out.println("请输入学生年龄:");
         String age=sc.next();
         System.out.println("请输入学生地址:");
         String address=sc.next();
         //上面的使用键盘输出添加学生姓名,名字这些就不再讲解了哈
         Student s=new Student();//调用Student对象
         s.setSid(sid);
         s.setName(name);
         s.setAge(age);
         s.setAddress(address);
         list.add(s);
         System.out.println("添加学生成功!!!");
         break;
         //把键盘输出的字符串变量赋值给对象s的set方法
      }
   }

//isUser方法如下:

public static boolean isUser(ArrayList<Student> list,String sid){
//定义一个布尔值,为false,先循环,再判断,如果学过集合的同学们应该都看得懂这个循环哈,不懂可以加我qq哈,qq号码在最后一句话里面
   boolean flag=false;
   for (int i = 0; i < list.size(); i++) {
      Student s = list.get(i);
      if(s.getSid().equals(sid)){
         flag=true;
      }
   }
   return flag;
}

接来下:我们写查看所有学生代码,先把简单的给写完先哈。

public static void finaAddStudent(ArrayList<Student> list){
   if(list.isEmpty){isEmpty是集合里面的一个方法,判断集合是否为空值,当然,你也把判断条件写为list.size==0,这个判断条件,效果都一样哈
      System.out.println("您未录入学生,请先录入学生:");
   }else{//遍历集合,输出已录入的学生集合
      for (int i = 0; i < list.size(); i++) {
         Student s = list.get(i);
         System.out.println("学号:"+s.getSid()+"\t姓名:"+s.getName()+"\t年龄:"+s.getAge()+"\t地址:"+s.getAddress());
      }
   }
}

接下来,我们来写删除代码,代码如下:

public static void delete(ArrayList<Student> list){
   if(list.size()==0){//首先哈,这个和上面那个查看所有学生判断是一样的
      System.out.println("未录入学生,请先录入学生!!!");
   }else{
//显示所有学生信息方便删除
      System.out.println("学生信息:");
      for (int i = 0; i < list.size(); i++) {
         Student s = list.get(i);
         System.out.println("学号:"+s.getSid()+"\t姓名:"+s.getName()+"\t年龄:"+s.getAge()+"\t地址:"+s.getAddress());
      }
      while (true){
         Scanner sc=new Scanner(System.in);
         System.out.println("请您输入需要删除的学生学号:");给出删除学生提示信息
         String sid=sc.next();//输出已有的学生学号进行删除
         int index=-1;//这个index变量是为了下面的判断先给赋值等于-1,因为集合下标没有-1,
         for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            if(s.getSid().equals(sid)){

               index=i;
               break;
//如果调用对象的学生学号和输出的学生学号相同,则index=i,i=sid学号下标;
            }
         }
然后再进行判断:
         if(index==-1){
            System.out.println("没有此学号,请重新选择!!!");
//如果没有输出错误或者没有此学号,就需要重新输入,删除已有学号;
         }else{下面的这些就是如果输出的学号和之前录入进去的学号相同,就可以修改啦
            for (int i = 0; i < list.size(); i++) {
               Student s = list.get(i);
               if(s.getSid().equals(sid)){
                  list.remove(i);
                  System.out.println("删除学生成功!!!");

               }
            }
            break;
         }

      }
      }

}

那我们接下来.,就写最后一个步骤,更改学生也是最难的喔,和删除有几分相似,都是用集合调用方法,比较简单:

public static void ChangeSid(ArrayList<Student> list){
   if(list.size()==0){
      System.out.println("未录入学号,请先录入学号!!!");
   }else{
      System.out.println("学生信息:");
      for (int i = 0; i < list.size(); i++) {
         Student s = list.get(i);
         System.out.println("学号:"+s.getSid()+"\t姓名:"+s.getName()+"\t年龄:"+s.getAge()+"\t地址:"+s.getAddress());
      }
//首先我们前面讲过,先判断集合是否为空值,还有显示学号,方便更改学生信息
      while (true){
         Scanner sc=new Scanner(System.in);
         System.out.println("请您输入需要更改的学生学号:");
         String sid=sc.next();
         int index=-1;
         for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            if(s.getSid().equals(sid)){
               index=i;
               break;
            }

         }
         if(index==-1){
            System.out.println("没有此学号,请重新选择!!!");
       //上面一段循环判断似是和删除是一样的道理,我就不多说了哈
如果没有学号,就重新输入学号进行修改!!!
         }else{
            System.out.println("请输入新学生姓名:");
            String name=sc.next();
            System.out.println("请输入新学生年龄:");
            String age=sc.next();
            System.out.println("请输入新学生地址:");
            String address=sc.next();
            Student s=new Student();//调用学生对象
            s.setSid(sid);
            s.setName(name);
            s.setAge(age);
            s.setAddress(address);
          //​​​​​​​把修改新的值赋值给set方法
            for (int i = 0; i < list.size(); i++) {
               Student student = list.get(i);
               if(student.getSid().equals(sid)){
                  list.set(i,s);//set方法是集合输入集合下标,然后再进行更改
                然后输出更改之后的结果:
                  System.out.println("学生更改之后:");
                  for (int j = 0; j < list.size(); j++) {
                     Student student1 = list.get(j);
                     System.out.println("学号:" + s.getSid() + "\t姓名:" + s.getName() + "\t年龄:" + s.getAge() + "\t地址:" + s.getAddress());
                  }
                  System.out.println("更改学生成功!!!");

               }
            }
            break;
         }

      }
   }
}

之后就没有之后啦,就大工告成啦,第一次发布文章,没有说的很清楚,但是我的注释,学生一般都看懂,喜欢我的可以帮我顶一下喔,如果有什么不懂的话就随时来找我。

qq:3358726145  24小时在线

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值