用数组完成对学生的管理

步骤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();
    }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值