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;
//需要等所有的循环都结束之后,才能判断是否有一样的
}
}
在写代码之前需要明确题目要求,一步一步来,清楚自己想要干什么,要怎么干,为什么这么干,循序渐进!