欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

通过数组,完成对学生信息的管理(CURD)

程序员文章站 2022-05-04 11:50:10
一、通过数组,完成对学生信息的管理(CURD)步骤1:创建一个学生类(构造方法、GetSet、toString)public class Student {private String id;//学号private String name;//姓名private int age;//年龄@Overridepublic String toString() { return "Student{" + "id='" + id + '\'' +...

步骤1:创建一个学生类(构造方法、GetSet、toString)

public class Student {
    private String id;//学号
    private String name;//姓名
    private int age;//年龄

    @Override
    public String toString() {
        return "Student{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public Student() {
    }

    public Student(String id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
}

步骤2:创建学生管理类,进行CURD,并进行测试

public class StudentManage {
    Student [] stu=new Student[30];//固定班级有30个学生
    static int currCount=0;//当前学生数

    /**
     *添加学生到数组
     * @param s
     */
    public void add(Student s){
    stu[currCount]=s;//将传过来的学生存入数组
        currCount++;
    }

    /**
     * 查询所有
     */
    public void queryAll(){
        for (int i = 0; i <currCount ; i++) {
            System.out.println(i+"******"+stu[i]);
        }
    }

    /**
     * 根据学号查询学生
     * 循环遍历数组,拿到对象的id和传入的id做比较
     * 如果一致,那么打印当前对象,否则查询为空
     * @param id
     */
    public void queryOneById(String id){
        for (int i = 0; i <currCount ; i++) {
            if (stu[i].getId().equals(id)){
                System.out.println(stu[i]);
            }
        }
    }

    /**
     * 修改
     * @param id 传的id
     * @param newId
     * @param name
     * @param age
     */
    public void update(String id,String newId,String name,int age){
        for (int i = 0; i <currCount ; i++) {
            if (stu[i].getId().equals(id)){
                stu[i].setId(newId);
                stu[i].setName(name);
                stu[i].setAge(age);
            }
        }

    }

    /**
     * 删除1
     * @param id

    public void delete(String id){
    //循环遍历拿到数组中id
        for (int i = 0; i <currCount ; i++) {
    //判断传的id是否和遍历的id相等
            if (stu[i].getId().equals(id)){
                for (int j = i; j <currCount ; j++) {
                    stu[j]=stu[j+1];
                }
                currCount--;
            }
        }

    }*/
    /**
     * 删除2
     * @param id
     */
    public void delete(String id){
        //创建一个长度和stu数组一样的新数组
        Student []newStu=new Student[stu.length];
        //创建一个新下标
        int j=0;
        //创建新人数
        int sum=currCount;
        for (int i = 0; i <currCount ; i++) {
            //判断传的id和循环遍历的id是否相等
            if (id!=stu[i].getId()){
                //如果不等,把不需要删除的,赋给新数组
                newStu[j]=stu[i];
                //每赋一次人数加1
                j++;
            }else{
                //否则需要删除,人数每次减1
                sum--;
            }
        }
        //再把新数组赋给老数组
        stu=newStu;
        //再把新人数赋给老人数
        currCount=sum;
    }
}

步骤3:创建测试类

public class Test{
public static void main(String[] args) {
        StudentManage sm=new StudentManage();
        Student s1=new Student("01","张三",20);
        Student s2=new Student("02","李四",22);
        Student s3=new Student("03","王五",25);
        sm.add(s1);
        sm.add(s2);
        sm.add(s3);
        sm.queryAll();
        System.out.println("------------------");
        //sm.queryOneById("02");
        //sm.delete();
        //sm.update("01","04","雷霆",14);
        sm.delete("02");
        sm.queryAll();
    }
    }

本文地址:https://blog.csdn.net/IT_LD/article/details/107346943

相关标签: Java基础 java