题目要求:

首先理清楚思路(完成要求1,2)

1.创建一个长度为3的数组
2.创建学生对象
3.把学生对象添加到数组当中
4.再次创建一个学生对象
5.id唯一性判断
5.1 id已存在 ---提示重复
5.2 id不存在 ---添加学生对象
6.添加学生对象
6.1 老数组已满 
6.1.1创建一个新数组,把老数组元素放入新数组,并且新数组的长度:老数组+1
6.2 老数组没满  直接添加

首先创建数组对象的javabeen类

Javabeen类

package StudentArr;

public class Student {
    int id;
    String name;
    int age;

    public Student() {
    }

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

    public int getId() {
        return id;
    }

    public void setId(int 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;
    }
}

测试类

测试类

package StudentArr;

public class Test {


    public static void main(String[] args) {
        //定义一个数组存放三个学生对象
        Student[] arr = new Student[3];
        //定义学生对象,放入数组
        Student stu1 = new Student(1, "zhangsan", 11);
        Student stu2 = new Student(2, "wanger", 12);
        Student stu3 = new Student(3, "lisan", 13);
        arr[0] = stu1;
        arr[1] = stu2;
        arr[2] = stu3;

        //再添加一个学生对象
        Student stu4 = new Student(4, "wusi", 14);

        //唯一性判断
        //已存在id --- 不用添加
        boolean flag = Judge(arr, stu4.getId());
        if (flag){
            System.out.println("id已存在,请修改后再插入");
        }else{

            //不存在id --- 就可以吧学生对象添加进去
            //把stu4添加到数组中
            //1.数组已经存满,---只能创建一个新数组,把老数组元素拷贝进新数组,且新数组的长度是老数组+1
            //2.数组没有存满 --- 直接添加
            int count = getCount(arr);
            if (count == arr.length) {
                //已存满

                Student[] newArr = CreatArr(arr);
                newArr[count] = stu4;
                Print(newArr);
            }else{
                //未存满
                //[stu1,stu2,null]
                //getCount获取的是2,表示数组中有2个元素
                //还有一层意思,如果下一次要添加数据,这就是添加到2索引的位置,因为2索引位置对应的是第三个元素,第三个元素为null
                arr[count] = stu4;
                Print(arr);
            }
        }

    }

    //要求3:通过id删除学生信息
    //如果存在则删除,如果不存在则提示删除失败

    //1.找到id在数组中对应的索引,定义一个方法
    public static int getIndex(Student[] arr,int id){
        for (int i = 0; i < arr.length; i++) {

            if (arr != null){
                int sid =arr[i].getId();
                if (sid == id){
                    return  i; //如果要查找的id等于数组中的id 则返回索引i
                }
            }
        }
        //循环结束表示不存在
       return -1;
    }


   //方法区
    //定义一个方法遍历所有学生信息
    public static void Print(Student[] arrTest){
        for (int i = 0; i < arrTest.length; i++) {
            if (arrTest[i] != null){
                System.out.println(arrTest[i].getId()+" "+arrTest[i].getName()+" "+arrTest[i].getAge());
            }
        }

    }

    //定义一个方法用于把老数组元素拷贝到新数组
    //这里在定义方法的时候使用了Student[]这个引用数据类型
    public static Student[] CreatArr(Student[] arr) {
        Student[] arr2 = new Student[arr.length + 1];
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            //把老数组的元素添加到新数组中
            arr2[i] = arr[i];
        }
        return arr2;
    }


    //定义一个方法用于判断数组存了几个元素
    public static int getCount(Student[] arr) {
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != null) { //get方法遇到null的话就会报错,这里防止遇到这种情况加一个判断
                count++;
            }
        }
        return count;
    }


    //定义一个方法用于唯一性判断
    //创建方法要想三个件事情
    //1.我要干什么   判断id是否存在
    //2.在我做这件事的时候需要什么  数组,id值
    //3.方法的结果是否被调用,如果需要被调用则返回  需要返回
    public static boolean Judge(Student[] arr, int id) {
        //遍历数组 得到id

        for (int i = 0; i < arr.length; i++) {
            if (arr[i]!=null){
                int sid = arr[i].getId();

                //比较 存在就返回true
                if (sid == id) {
                    return true;
                }
            }
        }
        //当循环结束之后,还没有找到一样的,那么表示数组中要查找的id不存在
        return false;
    }
}

定义方法的三要素

//定义一个方法的三要素
//创建方法要想三个件事情
//1.我要干什么   判断id是否存在
//2.在我做这件事的时候需要什么  数组,id值
//3.方法的结果是否被调用,如果需要被调用则返回  需要返回

要求3

要求3代码

package StudentArr;

public class Test2 {
    public static void main(String[] args) {
        //定义一个数组存放三个学生对象
        Student[] arr = new Student[3];
        //定义学生对象,放入数组
        Student stu1 = new Student(1, "zhangsan", 11);
        Student stu2 = new Student(2, "wanger", 12);
        Student stu3 = new Student(3, "lisan", 13);
        arr[0] = stu1;
        arr[1] = stu2;
        arr[2] = stu3;

        int index =getIndex(arr,2);
        System.out.println("当前id的数组下标索引是:"+index);
       if (index >= 0){
           System.out.println("删除成功,下面是现在数组的成员");
           arr[index]=null;
           Print(arr);
       }else {
           System.out.println("id不存在请重新输入");
       }


    //要求3:通过id删除学生信息
    //如果存在则删除,如果不存在则提示删除失败

    //1.找到id在数组中对应的索引,定义一个方法
    public static int getIndex(Student[] arr,int id){
        for (int i = 0; i < arr.length; i++) {

            if (arr != null){
                int sid =arr[i].getId();
                if (sid == id){
                    return  i; //如果要查找的id等于数组中的id 则返回索引i
                }
            }
        }
        //循环结束表示不存在
        return -1;
    }

    public static void Print(Student[] arrTest){
        for (int i = 0; i < arrTest.length; i++) {
            if (arrTest[i] != null){
                System.out.println(arrTest[i].getId()+" "+arrTest[i].getName()+" "+arrTest[i].getAge());
            }
        }

    }
}

要求4-5

要求4-5代码

package StudentArr;

public class Test2 {
    public static void main(String[] args) {
        //定义一个数组存放三个学生对象
        Student[] arr = new Student[3];
        //定义学生对象,放入数组
        Student stu1 = new Student(1, "zhangsan", 11);
        Student stu2 = new Student(2, "wanger", 12);
        Student stu3 = new Student(3, "lisan", 13);
        arr[0] = stu1;
        arr[1] = stu2;
        arr[2] = stu3;

        int index =getIndex(arr,2);
        

      //不调用方法修改年龄
        if (index>=0 && index<= arr.length) {
            //年龄+1
            if (arr[index].getId() == 2) {
                int newAge = arr[index].getAge() + 1;
                stu2.setAge(newAge);
                System.out.println(stu2.getAge() + " ");
            } else {
             S  ystem.out.println("id输入错误");
            }
        }else{
            System.out.println("id不在数组内");
        }



        //查询数组id为2的学生,如果存在,则将他的年龄+1
        //调用方法来修改年龄,
        //int newAge=ChangeAge(arr,2);
        //arr[index].setAge(newAge);
        //System.out.println(arr[index].getAge()+" ");
    }

    //定义一个方法用于修改年龄
    public static int ChangeAge(Student[] arr,int id){
        int newAge=0;
        for (int i = 0; i < arr.length; i++) {

            if (arr[i].getId() == 2){
                newAge = arr[i].getAge()+1;
            }
        }
        return newAge;

    }


    //要求3:通过id删除学生信息
    //如果存在则删除,如果不存在则提示删除失败

    //1.找到id在数组中对应的索引,定义一个方法
    public static int getIndex(Student[] arr,int id){
        for (int i = 0; i < arr.length; i++) {

            if (arr != null){
                int sid =arr[i].getId();
                if (sid == id){
                    return  i; //如果要查找的id等于数组中的id 则返回索引i
                }
            }
        }
        //循环结束表示不存在
        return -1;
    }

    public static void Print(Student[] arrTest){
        for (int i = 0; i < arrTest.length; i++) {
            if (arrTest[i] != null){
                System.out.println(arrTest[i].getId()+" "+arrTest[i].getName()+" "+arrTest[i].getAge());
            }
        }

    }
}

最后修改:2022 年 11 月 09 日
如果觉得我的文章对你有用,请随意赞赏