Java的面向对象(初步) 综合练习:学生对象数组的信息输出、删除与修改(3)

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

}


###         要求1 与 要求2 代码



// StudentTest 类包含 main 方法,用于测试学生数组的添加和打印功能
package lxh.cat.prac7;

public class StudentTest {
public static void main(String[] args) {
// 创建一个长度为3的学生数组
Student[] arr = new Student[3];

    // 创建并初始化三个学生对象
    Student stu1 = new Student(1, "zhangsan", 23);
    Student stu2 = new Student(2, "lisi", 24);
    // Student stu3 = new Student(3, "wangwu", 25); // 未使用的代码

    // 将学生对象添加到数组中
    arr[0] = stu1;
    arr[1] = stu2;
    // arr[2] = stu3; // 未使用的代码

    // 创建第四个学生对象
    Student stu4 = new Student(4, "zhaoliu", 26);

    // 检查数组中是否已存在相同ID的学生
    boolean flag = contains(arr, stu4.getId());

    // 如果ID重复,则提示错误;否则,添加学生到数组
    if(flag){
        System.out.println("当前ID重复,请修改ID后再进行添加");
    }else{
        // 获取数组中非空元素的数量
        int count = getCount(arr);
        // 如果数组已满,则创建新数组并添加学生
        if(count == arr.length){
            Student[] newArr = createNewArr(arr);
            newArr[count] = stu4;
            printArr(newArr);
        }else{
            // 如果数组未满,则直接添加学生
            arr[count] = stu4;
            printArr(arr);
        }
    }
}

// 打印学生数组的信息
public static void printArr(Student[] arr){
    for (int i = 0; i < arr.length; i++) {
        Student stu = arr[i];
        if(stu != null){
            System.out.println(stu.getId() + "," + stu.getAge() + "," + stu.getName());
        }
    }
}

// 创建一个新的数组,长度比原数组多1
public static Student[] createNewArr(Student[] arr){
    Student[] newArr = new Student[arr.length + 1];
    for (int i = 0; i < arr.length; i++) {
        newArr[i] = arr[i];
    }
    return newArr;
}

// 获取数组中非空元素的数量
public static int getCount(Student[] arr){
    int count = 0;
    for (int i = 0; i < arr.length; i++) {
        if(arr[i] != null){
            count++;
        }
    }
    return count;
}

// 检查数组中是否存在具有特定ID的学生
public static boolean contains(Student[] arr, int id){
    for (int i = 0; i < arr.length; i++) {
        Student stu = arr[i];
        if(stu != null){
            int sid = stu.getId();
            if(id == sid){
                return true;
            }
        }
    }
    return false;
}

}


###         要求3 与 要求4 代码



// StudentTest2 类包含 main 方法,用于测试通过ID删除学生对象的功能
package lxh.cat.prac7;

public class StudentTest2 {
public static void main(String[] args) {
// 创建并初始化学生数组
Student[] arr = new Student[3];
Student stu1 = new Student(1, “zhangsan”, 23);
Student stu2 = new Student(2, “lisi”, 24);
Student stu3 = new Student(3, “wangwu”, 25);
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;

    // 获取ID为2的学生在数组中的索引
    int index = getIndex(arr, 2);
    System.out.println(index);

    // 如果找到学生,则将其从数组中删除
    if (index >= 0) {
        arr[index] = null;
        printArr(arr);
    }else{
        // 如果未找到学生,则打印错误信息
        System.out.println("ID不存在,删除失败");
    }
}

// 打印学生数组的信息
public static void printArr(Student[] arr){
    for (int i = 0; i < arr.length; i++) {
        Student stu = arr[i];
        if(stu != null){
            System.out.println(stu.getId() + "," + stu.getAge() + "," + stu.getName());
        }
    }
}

// 获取具有特定ID的学生在数组中的索引
public static int getIndex(Student[] arr, int id){
    for (int i = 0; i < arr.length; i++) {
        Student stu = arr[i];
        if(stu != null){
            int sid = stu.getId();
            if(sid == id){
                return i;
            }
        }
    }
    return -1;
}

}


###         要求5 代码



// StudentTest3 类包含 main 方法,用于测试修改学生年龄的功能
package lxh.cat.prac7;

public class StudentTest3 {
public static void main(String[] args) {
// 创建并初始化学生数组
Student[] arr = new Student[3];
Student stu1 = new Student(1, “zhangsan”, 23);
Student stu2 = new Student(2, “lisi”, 24);
Student stu3 = new Student(3, “wangwu”, 25);
arr[0] = stu1;
arr[1] = stu2;
arr[2] = stu3;

    // 获取ID为2的学生在数组中的索引
    int index = getIndex(arr, 2);
    System.out.println(index);

    // 如果找到学生,则增加其年龄
    if (index >= 0) {
        Student stu = arr[index];
        int newAge = stu.getAge() + 1; // 年龄加1
        stu.setAge(newAge);
        printArr(arr);
    }else{
        // 如果未找到学生,则打印错误信息
        System.out.println("ID不存在,修改失败");
    }
}

// 打印学生数组的信息
public static void printArr(Student[] arr){
    for (int i = 0; i < arr.length; i++) {
        Student stu = arr[i];
        if(stu != null){
            System.out.println(stu.getId() + "," + stu.getAge() + "," + stu.getName());
        }
    }
}

// 获取具有特定ID的学生在数组中的索引
public static int getIndex(Student[] arr, int id){
    for (int i = 0; i < arr.length; i++) {
        Student stu = arr[i];
        if(stu != null){
            int sid = stu.getId();
            if(sid == id){
                return i;
            }
        }
    }
    return -1;
}

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值