Java对象数组的增删改操作

123 阅读2分钟

通过数组的形式来操作对象

实体类:Student

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


    public Student() {
    }

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

    /**
     * 获取
     *
     * @return id
     */
    public int getId() {
        return id;
    }

    /**
     * 设置
     *
     * @param id
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * 获取
     *
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     *
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     *
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     *
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

}

测试类:StudentTest

public class StudentTest {
    public static void main(String[] args) {
        //创建长度为3的数组
        Student[] stuArr = new Student[3];
        //创建学生对象
        Student stu1 = new Student(1, "小李", 20);
        Student stu2 = new Student(2, "小许", 20);
        Student stu3 = new Student(3, "小陆", 20);
        //把学生对象添加到集合当中去
        stuArr[0] = stu1;
        stuArr[1] = stu2;
        stuArr[2] = stu3;
        //再次添加一个新的学生对象
        Student stu4 = new Student(4, "小闫", 20);
        boolean falg = idWhetherExist(stuArr, stu4.getId());
        if (falg) {
            //id存在
            System.out.println("id已存在请重新赋值!");
        } else {
            //id不存在
            int count = arrayWhetherFull(stuArr);
            if (count == stuArr.length) {
                //如果存储满需要创建一个新的数组
                Student[] newStuArr = copyArr(stuArr);
                newStuArr[count] = stu4;
                printArray(newStuArr);
            } else {
                //没存储满是直接添加
                stuArr[count] = stu4;
                printArray(stuArr);
            }
        }
        //根据id进行删除
        int index1 = getId(stuArr, 4);
        if (index1 > 0) {
            stuArr[index1] = null;
            printArray(stuArr);
        } else {
            System.out.println("id不存在!");
        }
        //对id为1同学的年龄更新进行加一
        int index2 = getId(stuArr, 1);
        if (index2 > 0) {
            Student stu = stuArr[index2];
            int age = stu.getAge() + 1;
            stu.setAge(age);
            printArray(stuArr);
        } else {
            System.out.println("该id不存在无法修改!");
        }

    }

    //判断id是否存在
    public static boolean idWhetherExist(Student[] stuArr, int id) {
        for (int i = 0; i < stuArr.length; i++) {
            Student stu = stuArr[i];
            if (stu != null) {
                int sid = stu.getId();
                if (sid == id) {
                    return true;
                }
            }
        }

        return false;
    }

    //判断数组是否已经存储满了,数组到底存储了几个数据
    public static int arrayWhetherFull(Student[] stuArr) {
        //定义一个统计有几个数据
        int count = 0;
        for (int i = 0; i < stuArr.length; i++) {
            if (stuArr[i] != null) {
                count++;
            }
        }
        return count;
    }

    //存储满之后创建一个新的数组并把老数组里的内容复制到新的数组中
    public static Student[] copyArr(Student[] Arr) {
        Student[] newStuArr = new Student[Arr.length + 1];
        for (int i = 0; i < Arr.length; i++) {
            newStuArr[i] = Arr[i];
        }
        return newStuArr;
    }

    //查找在数组中查找id看看是否存在
    public static int getId(Student[] stuArr, int id) {
        for (int i = 0; i < stuArr.length; i++) {
            Student stu = stuArr[i];
            if (stu != null) {
                if (stu.getId() == id) {
                    return id;
                }
            }
        }
        return -1;
    }

    //打印数组
    public static void printArray(Student[] stuArr) {
        for (int i = 0; i < stuArr.length; i++) {
            Student stu = stuArr[i];
            if (stu != null) {
                System.out.println("id:" + stu.getId() + ",姓名:" + stu.getName() + ",年龄:" + stu.getAge());
            }
        }
    }
}