API以及添加学生信息练习

API:应用程序编程接口

简单理解:API就是别人已经写好的东西,我们不需要自己编写,直接使用即可

Java API:指的就是jdk中提供的各种功能的Java类,这些类将底层的实现封装起来,我们不需关心这些类是如何实现的,只需要学习这些类如何使用就好

我们之前学习的API

Scanner 键盘录入

Random 随机数

jdk API帮助文档获取(需要的可以留言找我要

不是人工翻译,看懂意思就好

最重要的包java.long

1.打开API帮助文档

2.点击显示,并找到索引下面的输入

3.在输入框中输入类名并点击显示

4.查看类所在的包

5.查看类的描述

添加学生信息练习

Student.java

package text5;

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

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

Text.java

package text5;

public class Text {
    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;


        //要求1,再次添加一个学生对象,并在添加的时候进行学号的唯一性判断
        //读题解析法
        Student stu4 = new Student(4,"zhaoliu",26);
        //唯一性判断(目的,id不重复)
        //1.已存在不添加
        //2.不存在---就可以把学生添加进来
        boolean flag = contains(arr,stu4.getId());
        if (flag){//boolean在判断的时候,直接把条件写在括号中就可以了
           //存在---不用添加
            System.out.println("当前id重复,请修改id后重试");
        }else {
            //不存在---就可以把学生添加进数组
            int count = getCount(arr);
            if (count == arr.length){
                //已存满
                //创建一个新的数组,长度 = 老数组长度+1
                //最后把老数组拷贝到新数组里面
                Student[] newArr = creatNewArr(arr);
                //[stu1,stu2,stu3]
                //改变为【stu1,stu2,stu3,null】
                newArr[count] = stu4;
                //要求2:添加完毕后,遍历所有学生的信息
                printArr(newArr);
            }else {
                //未存满
                //【stu1,stu2,null】
                //getCount获取到的是2,表示数组中已经有了两个元素
                //但同时这个2也可以表示下一次添加数据,就是添加在2这个索引的位置
                arr[count] = stu4;
                //要求2:添加完毕后,遍历所有学生的信息
                printArr(arr);
            }

        }
        //要求3:通过学生id,删除学生信息,如果存在则删除,如果不存在,则显示删除失败
        int index = getIndex(arr,2);
        //要找到id在数组中对应的索引
        if (index >= 0){
            //存在,则删除
            arr[index] = null;
            //遍历数组
            printArr(arr);
        }else{
            //不存在
            System.out.println("当前id不存在,删除失败");
        }
        System.out.println(index);
    }

    //1.我要干嘛 找到id在数组中的索引
    //2.我需要什么才能完成 数组id
    //3.调用处是否需要继续使用方法的结果 ? 要
    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 1;
                }
            }
        }
        //当循环结束如果还没有找到,就返回-1 因为没有-1 索引
        return -1;
    }
    
    
    
    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.getName()+","+stu.getAge());
            }
        }
    }

    //创建一个新的数组,长度 = 老数组长度+1
    //最后把老数组拷贝到新数组里面
    public  static Student[] creatNewArr(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;
    }

    //1.我要干嘛   唯一性判断
    //2.我干这件事,需要什么才能完成  数组 id
    //3.调用处是否需要继续舒勇方法的结果  必须返回已存在 不存在
    public  static  boolean contains(Student[] arr ,int id){
        for (int i = 0; i < arr.length; i++) {
            Student stu = arr[i];
            //进行非空判断,如果获取到了空值getId就会报错
            if (stu != null){
                int sid = stu.getId();
                if (sid == id){
                    return true;
                }
            }
        }
        return false;
        //需要等所有的循环都结束之后,才能判断是否有一样的
    }
}

在写代码之前需要明确题目要求,一步一步来,清楚自己想要干什么,要怎么干,为什么这么干,循序渐进!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值