对象数组5 1.再添加一个学生对象并在添加的时候进行学号的唯一性判断 2.添加完毕,遍历学生信息 3.通过id删除学生信息 不存在则提示 4.删除完毕遍历学生信息

public class student {
  //构建javabean
    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;
    }
    //get和set

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

 

public class test {
    public static void main(String[] args) {
      /*  1.再添加一个学生对象 并在添加的时候进行学号的唯一性判断   2.添加完毕,遍历学生信息

      //创建数组
        student arr[] = new student[3];
        //创建学生对象
        student stu1 = new student(1, "小名", 19);
        student stu2 = new student(2, "小红", 12);
        student stu3 = new student(3, "张三", 19);
        //把学生对象添加数组中
        arr[0] = stu1;
        arr[1] = stu2;
        arr[2] = stu3;
        //再建立学生对象
        student stu4 = new student(4, "大哥", 20);
        //唯一性判断
        //调用方法 这括号里面放这个方法对应的值
        boolean pd = only(arr, stu4.getId());
        if (pd) {
            //数组有这个值了
            System.out.println("数组中有这个元素了 重新定义");
        } else {
            //数组没有这个值  考虑数组是否满了  满了添加新数组=旧数组+1   没满就直接添加
            //调用sum方法
             int count = sum(arr);
            if (count== arr.length){
                //满了  满了创建新数组=旧数组+1   定义方法
                student[] newarr=newarr(arr);
                //把stu4添加到新数组中
                newarr[count]=stu4;
                //添加完毕 遍历学生信息
                print(newarr);
            }
            //没满
            //把stu4添加到数组中
            arr[count]=stu4;
            //添加完毕 遍历学生信息
            print(arr);
        }
    }

    //要求2   添加完毕 遍历学生信息
    public static void print(student arr[]){
        for (int i = 0; i < arr.length; i++) {
            student stu=arr[i];
            if (stu!=null){
                System.out.println(stu.getAge()+","+stu.getId()+","+stu.getName());
            }
        }
    }
    //创建一个新数组 新数组=老数组+1
    //把老数组值拷贝给新数组
    public static student[]  newarr (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 sum(student arr[]){
        //计数器
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]!=null){
          count++;
            }
        }
        return count;
    }

    //定义方法  看id唯一性
    public static boolean only(student arr[],int id){
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
          //依次取到数组中每个学生对象
            student stu=arr[i];
            //获取对象中学生id
            int mind=stu.getId();
            if (stu!=null){
                if (mind==id){
                    return true;
                }
            }
        }
        return false;*/


/*    3.通过id删除学生信息 不存在则提示   4.删除完毕遍历学生信息
        //创建数组
        student arr[]=new student[3];
        //添加学生对象
        student stu1 = new student(1, "小名", 19);
        student stu2 = new student(2, "小红", 12);
        student stu3 = new student(3, "张三", 19);
        //把对象放数组中
        arr[0]=stu1;
        arr[1]=stu2;
        arr[2]=stu3;
   //3.通过id删除学生信息  存在删除  不存在提示
         int index=sc(arr,2);
        System.out.println(index);
         if (index>=0){
              //删除后遍历数组  打印其他学生信息
             arr[index]=null;
             print(arr);
         }else
         //不存在提醒
        System.out.println("输入id不存在 重新输入");
    }
    //定义方法遍历数组学生信息
    public static void print(student arr[]){
        for (int i = 0; i < arr.length; i++) {
            //依次得到数组中的元素对象
            student stu=arr[i];
            if (stu!=null){
                System.out.println(stu.getAge()+","+stu.getId()+","+stu.getName());
            }
        }

    }
    //定义方法 找id在数组中的索引
    public static int sc(student arr[],int id) {
        for (int i = 0; i < arr.length; i++) {
            //依次得到数组中每个学生对象   i是索引  arr【i】是元素
            student stu = arr[i];
            if (stu != null) {
                 //数组中id
                int sid = stu.getId();
                //看看数组中的id  和输入id相同不
                if (sid == id) {
                    //返回索引
                    return i;
                }
            }
        }
        return -1;



 */
    //5.完成查询id为2的学生存在把年龄加1  遍历学生对象  也就是数组

        //创建数组
        student arr[]=new student[3];
        //添加学生对象
        student stu1 = new student(1, "小名", 19);
        student stu2 = new student(2, "小红", 12);
        student stu3 = new student(3, "张三", 19);
        //把对象放数组中
        arr[0]=stu1;
        arr[1]=stu2;
        arr[2]=stu3;

        int index=sy(arr,2);
        if (index>=0){
            //存在年龄加1
            student stu=arr[index];
            //把原来年龄拿出来
            int newage=stu.getAge()+1;
            //把新年龄塞回去
            stu.setAge(newage);
           //遍历数组
            print(arr);
        }else
        //不存在
        System.out.println("id不存在");

    }
    //遍历学生对象
    public static void print(student arr[]){
        for (int i = 0; i < arr.length; i++) {
            //依次得到数组中的元素对象
            student stu=arr[i];
            if (stu!=null){
                System.out.println(stu.getAge()+","+stu.getId()+","+stu.getName());
            }
        }

    }
    //定义方法 先找到id为2的学生索引
    public static int sy(student[] arr, int id){
        for (int i = 0; i < arr.length; i++) {
            //依次获取数组中学生对象
            student stu=arr[i];
            //得到数组中id
            int sid=stu.getId();
            //看看数组中id和 输入id一样不
            if (sid==id){
                return i;
            }
        }
        return -1;
    }
}


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值