学Java第十六天--------类与对象综合案例(三)

一、对象数组pro++

先定义一个JavaBean类

package com.itheima.exe5;

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;
    }

    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;
    }
}

对于要求1和要求2:

package com.itheima.exe5;

public class StudentTest {
    public static void main(String[] args) {
        Student arr[]=new Student[3];

        Student s1=new Student(1,"马春红",21);
        Student s2=new Student(2,"lili",22);
        //Student s3=new Student(1,"红红",24);

        arr[0]=s1;
        arr[1]=s2;
        //arr[2]=s3;

        //1.再添加一个新的对象
        Student s4=new Student(4,"赫赫",25);

        //2.判断新添加的对象学号是否唯一
        boolean flag=contains(arr,s4.getId());
        if(flag==true){//说明不唯一,要输出一些提示
            System.out.println("学号不唯一,无法添加");
        }
        else{
            //学号唯一,可以添加,但要判断数组是否已满
            int count=iffull(arr);
            if(count==arr.length){  //数组已满,需要再建立一个新的数组,长度为原数组长度+1
                Student[] newarr=constructarr(arr);
                newarr[count]=s4;
                printArr(newarr);
            }
            else{
                //数组不满
                arr[count]=s4;
               printArr(arr);
            }
        }

    }

    public static boolean contains(Student arr[],int id){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                if(arr[i].getId()==id){
                    return true;
                }
            }
        }
        return false;
    }

    public static int iffull(Student arr[]){
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                count++;
            }
        }
        return count;
    }

    public static Student[] constructarr(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 void printArr(Student []arr){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                System.out.println(arr[i].getId()+" "+arr[i].getAge()+" "+arr[i].getName());
            }
        }
    }
}

对于要求3和4:

package com.itheima.exe5;

public class StudentTest {
    public static void main(String[] args) {
        Student arr[]=new Student[3];

        Student s1=new Student(1,"马春红",21);
        Student s2=new Student(2,"lili",22);
        Student s3=new Student(3,"红红",24);

        arr[0]=s1;
        arr[1]=s2;
        arr[2]=s3;

        int id=4;
        //3.通过id删除学生信息:要先通过id查数组的索引
        int index=getIndex(arr,id);
        if(index>=0){
            arr[index]=null;
            printArr(arr);
        }
        else{
            System.out.println("不能删除,不存在");

        }


    }

    public static boolean contains(Student arr[],int id){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                if(arr[i].getId()==id){
                    return true;
                }
            }
        }
        return false;
    }

    public static int iffull(Student arr[]){
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                count++;
            }
        }
        return count;
    }

    public static Student[] constructarr(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 void printArr(Student []arr){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                System.out.println(arr[i].getId()+" "+arr[i].getAge()+" "+arr[i].getName());
            }
        }
    }

    public static int getIndex(Student[] arr,int id){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                if(arr[i].getId()==id){
                    return i;
                }
            }
        }
        return -1;
    }
}

删除数组中的元素,可将arr[i]=null;由某一个变量遍历找到某一个对象

对于要求5:

package com.itheima.exe5;

public class StudentTest {
    public static void main(String[] args) {
        Student arr[]=new Student[3];

        Student s1=new Student(1,"马春红",21);
        Student s2=new Student(2,"lili",22);
        Student s3=new Student(3,"红红",24);

        arr[0]=s1;
        arr[1]=s2;
        arr[2]=s3;

        int id=2;
        //3.通过id删除学生信息:要先通过id查数组的索引
        int index=getIndex(arr,2);
        arr[index].setAge(arr[index].getAge()+1);
        printArr(arr);

    }

    public static boolean contains(Student arr[],int id){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                if(arr[i].getId()==id){
                    return true;
                }
            }
        }
        return false;
    }

    public static int iffull(Student arr[]){
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                count++;
            }
        }
        return count;
    }

    public static Student[] constructarr(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 void printArr(Student []arr){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                System.out.println(arr[i].getId()+" "+arr[i].getAge()+" "+arr[i].getName());
            }
        }
    }

    public static int getIndex(Student[] arr,int id){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                if(arr[i].getId()==id){
                    return i;
                }
            }
        }
        return -1;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值